为了账号安全,请及时绑定邮箱和手机立即绑定

重新加载芹菜节拍配置

重新加载芹菜节拍配置

胡说叔叔 2021-12-21 16:27:00
我正在使用celery和celery-beat不使用Django,我有一个任务需要celery-beat在运行时修改计划。现在我有以下代码(名为 的模块celery_tasks):# __init__.pyfrom .celery import app as celery_app__all__ = ['celery_app']#celery.pyfrom celery import Celeryimport configcelery_config = config.get_celery_config()app = Celery(    __name__,    include=[        'celery_tasks.tasks',    ],)app.conf.update(celery_config)# tasks.pyfrom celery_tasks import celery_appfrom celery import shared_task@shared_taskdef start_game():    celery_app.conf.beat_schedule = {        'process_round': {            'task': 'celery_tasks.tasks.process_round',            'schedule': 5,        },    }我从celery以下命令开始:celery worker -A celery_tasks -E -l info --beatstart_game正常执行和存在,但beatprocess_round任务从不运行。如何强制重新加载节拍计划(重新启动所有工人似乎不是一个好主意)?
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

启动 celerybeat 进程时普通 celery 后端的问题。是否会创建一个配置文件并将所有任务和计划写入该文件,


以便它不能动态更改您可以使用该包, celerybeat-sqlalchemy-scheduler以便您可以编辑 DB 本身的计划,以便 celerybeat 将从 DB 本身获取新计划

还有另一个celery-redbeat使用 redis-server 作为后端的包

你可以参考这


查看完整回答
反对 回复 2021-12-21
?
守着一只汪

TA贡献1872条经验 获得超3个赞

使用 schedule config 似乎也是个坏主意。如果最初 process_round 任务将处于活动状态并检查游戏是否未开始,那么什么都不做。


查看完整回答
反对 回复 2021-12-21
  • 2 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信