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

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

概述使用Celery ver.3.1.23,我试图动态地向celery beat添加一个计划任务.我有一个芹菜工人和一个芹菜击败实例运行. 触发标准芹菜任务y运行task.delay()工作正常.当我将计划的周期性任务定义为配置中的设置时,celery beat会运行它. 但是我需要的是能够在运行时添加在指定的crontab上运行的任务.将任务添加到持久调度程序后,芹菜节拍似乎没有检测到新添加的新任务 使用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上的定期任务.

总结

以上是内存溢出为你收集整理的python-3.x – 如何动态地将计划任务添加到Celery beat全部内容,希望文章能够帮你解决python-3.x – 如何动态地将计划任务添加到Celery beat所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存