在FLASK应用程序

时间:2015-11-26 13:06:36

标签: python flask celery celerybeat

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

这会运行应用程序和工作人员,但是直到我关闭工作人员才会运行Celery beat。有什么方法可以同时运行吗?也许以某种方式将-B标志添加到选项设置中?我对这件事有任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

如果你为你的选项添加'beat'= True,当你调用worker.run(**选项)时,它会给节拍者提供节拍任务:

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

当工人停止时它应该停止跳动。

相关问题