gpt4 book ai didi

python - 在 FLASK 应用程序中同时运行 Celerybeat 和 Worker

转载 作者:行者123 更新时间:2023-12-01 04:19:00 27 4
gpt4 key购买 nike

我正在使用 Celery 开发 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()

这会运行应用程序和工作线程,但在我关闭工作线程之前,Celerybeat 不会运行。有什么办法可以同时运行两者吗?也许以某种方式将 -B 标志添加到选项设置中?我将不胜感激任何有关此事的帮助。

最佳答案

如果你在选项中添加 'beat' = True ,当你调用worker.run(**options)时,它会将beat任务交给worker:

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()

当工作人员停止时,它应该停止节拍。

关于python - 在 FLASK 应用程序中同时运行 Celerybeat 和 Worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33939526/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com