芹菜与主(烧瓶)应用不同的模块

时间:2018-09-12 12:19:17

标签: flask celery

我正在运行一个带有芹菜的Flask应用程序。 我有一些休息控制器,它们调用一些与celery一起运行的任务。

我是否必须在具有flask应用程序上下文的同一主python文件中定义任务?

我想将芹菜放在另一个模块中,例如“ TaskRunner”模块或类似的模块,然后让Flask应用程序/控制器使用该服务来调用/运行实际任务。

如何将应用上下文(或celery实例)传递给TaskRunner,以便可以从那里使用celery?并在那里使用@celery.task注释?

预先感谢

2 个答案:

答案 0 :(得分:0)

我终于通过使用蓝图重构代码来解决了这个问题。 然后,一旦celery实例已经存在,并且在我的应用工厂中注册了“ celery任务”蓝图,它便可以正常工作。

答案 1 :(得分:-1)

这里http://flask.pocoo.org/docs/0.12/patterns/celery/

有很好的解释

如果这还不够,我可以给你一些额外的提示