我尝试在向我的应用程序发出POST命令以更改节拍时间后重新启动节拍工作程序。当我停止并重新启动worker时,他们没有获取对celerybeat-schedule.db文件所做的更改。在停止和启动工人时,假设是否刷新节拍计划?在日志中,我看到节拍停止并重新开始。下面是我使用POST命令调用的3个函数,首先我停止工作,然后我修改计划,然后重新启动工作程序。使用django不是一种选择,因为我已经在使用烧瓶了。
def scheduler(frequency):
celery_app.conf.CELERYBEAT_SCHEDULE = {
'every-10-seconds': {
'task': 'tasks.add',
'schedule': int(frequency),
'args': (5, 5)
},
}
def stop():
subprocess.check_call(['celery', 'multi', 'stopwait', '1', '--pidfile=worker.pid'])
return
def restart():
subprocess.check_call(['celery', 'multi', 'start', '1', '-A', 'tasks', '-l', 'info',
'--pidfile=worker.pid', '--beat'])
return