在运行时添加,修改,删除celery.schedules [英] Add, modify, remove celery.schedules at run time
问题描述
是否可以在运行时添加,修改,删除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屋!