在运行时添加,修改,删除celery.schedules

com*_*ian 8 python celery

有没有办法在运行时添加,修改,删除celery.schedules.我需要定期读取数据库表以了解计划列表的内容.

文件说人们可以djcelery.schedulers.DatabaseScheduler用来实现我想要的,但不知道该怎么做.

我读了如何动态添加/删除Celery(celerybeat)的周期性任务,仍然不清楚

感谢帮助

dan*_*ula 13

在应用设置中设置时:

CELERYBEAT_SCHEDULER='djcelery.schedulers.DatabaseScheduler'
Run Code Online (Sandbox Code Playgroud)

celery beat 进程检查django PeriodicTask模型,看看应该执行什么任务.

您可以使用django模型修改/修改/删除这些任务:

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()
Run Code Online (Sandbox Code Playgroud)

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