在运行时添加,修改,删除celery.schedules [英] Add, modify, remove celery.schedules at run time

查看:39
本文介绍了在运行时添加,修改,删除celery.schedules的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在运行时添加,修改,删除celery.schedules.我需要一些可以定期读取数据库表的信息,以了解日程表列表.

is there a way to Add, modify, remove celery.schedules at run time. I need something that reads a db table periodically to know list of schedules.

文档说,可以使用 djcelery.schedulers.DatabaseScheduler 来实现我想要的功能,但不确定如何做到.

Document says one can use djcelery.schedulers.DatabaseScheduler to achieve what I want, but not sure how to do it.

我阅读了>如何动态添加/删除定期芹菜的任务(celerybeat),仍然不清楚

感谢帮助

推荐答案

在应用设置中进行设置:

When you set in your app settings:

CELERYBEAT_SCHEDULER='djcelery.schedulers.DatabaseScheduler'

芹菜节拍过程会检查django PeriodicTask模型,以查看应执行的任务.

celery beat proces checks django PeriodicTask model to see what task should be executed.

您可以通过使用Django模型对其进行修改来添加/修改/删除这些任务:

You can add / modify / remove those tasks by modifying it using django model:

from djcelery.models import PeriodicTask, CrontabSchedule

every_hours_crontab = CrontabSchedule(minute=0)
every_hours_crontab.save()

periodic_task = PeriodicTask(
    name='Call my task every hour',
    task='myproject.tasks.mytask',
    crontab=every_hours_crontab,
    args=json.dump([arg1, arg2]),
    kwargs=json.dump({'foo': 'bar'})
)
periodic_task.save()

您还可以使用Django管理面板测试PeriodicTask的各种配置:
http://localhost:8000/admin/djcelery/crontabschedule/add/
http://localhost:8000/admin/djcelery/periodictask/

You can also test various configuration of PeriodicTask using django admin panel:
http://localhost:8000/admin/djcelery/crontabschedule/add/
http://localhost:8000/admin/djcelery/periodictask/

这篇关于在运行时添加,修改,删除celery.schedules的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆