繁体   English   中英

在FLASK应用程序中同时运行Celery beat和worker

[英]Run Celery beat and worker concurrently in FLASK app

我正在用芹菜开发FLASK应用程序。 在其中,我使用app.run()行运行该应用程序。 如果我将其更改为以下内容

if __name__ == '__main__':

application = current_app._get_current_object()

worker = worker.worker(app=application)
beat = beat.beat(app=application)

options = {
    'broker': app.config['CELERY_BROKER_URL'],
    'loglevel': 'INFO',
    'traceback': True,
}

worker.run(**options)
beat.run(**options)
app.run()

这会运行应用程序和工作程序,但是直到我关闭工作程序后,芹菜节拍才会运行。 有什么办法可以同时运行两者? 也许以某种方式将-B标志添加到选项设置中? 我很乐意为您提供帮助。

如果在选项中添加'beat'= True,则在调用worker.run(** options)时,会将beat任务交给工作人员:

if __name__ == '__main__':

application = current_app._get_current_object()

worker = worker.worker(app=application)

options = {
    'broker': app.config['CELERY_BROKER_URL'],
    'loglevel': 'INFO',
    'traceback': True,
    'beat': True,
}

worker.run(**options)
app.run()

当工人停下来时,它应该停止节拍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM