加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-3.x – 如何动态地将计划任务添加到Celery beat

发布时间:2020-12-20 13:12:16 所属栏目:Python 来源:网络整理
导读:使用Celery ver.3.1.23,我试图动态地向celery beat添加一个计划任务.我有一个芹菜工人和一个芹菜击败实例运行. 触发标准芹菜任务y运行task.delay()工作正常.当我将计划的周期性任务定义为配置中的设置时,celery beat会运行它. 但是我需要的是能够在运行时添
使用Celery ver.3.1.23,我试图动态地向celery beat添加一个计划任务.我有一个芹菜工人和一个芹菜击败实例运行.

触发标准芹菜任务y运行task.delay()工作正常.当我将计划的周期性任务定义为配置中的设置时,celery beat会运行它.

但是我需要的是能够在运行时添加在指定的crontab上运行的任务.将任务添加到持久调度程序后,芹菜节拍似乎没有检测到新添加的新任务.我可以看到celery-schedule文件确实有一个带有新任务的条目.

码:

scheduler = PersistentScheduler(app=current_app,schedule_filename='celerybeat-schedule')
scheduler.add(name="adder",task="app.tasks.add",schedule=crontab(minute='*/1'),args=(1,2))
scheduler.close()

print(scheduler.schedule)
????{‘celery.backend_cleanup’:,
?‘adder’:}

app.tasks.add有@ celery.task装饰器.

解决方法

您可以通过启用 autoreloading来解决您的问题.

但是,我不是100%确定它适用于您的配置文件,但它应该在CELERY_IMPORTS路径中.

Hoverer注意到此功能是实验性的,不能用于生产.

如果您真的想要动态celerybeat调度,您可以始终使用another scheduler like the django-celery one通过django管理员管理db上的定期任务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读