扩展芹菜应用程序,类似于Flask的蓝图

时间:2016-05-07 21:36:48

标签: python celery

我的Celery模块中的任务功能数量正在快速增长,并且它们可能变得太笨重而无法包含在单个模块中。这是我几年前面对Flask的一个问题,我用Flask的蓝图解决了这个问题。基本上我想部署Flask提供的相同蓝图方法,并将我的任务分组到单个模块中,以某种方式“组合”它们,并将它们与单个RabbitMQ队列一起使用。这可能与芹菜?我希望这对每个人都有意义,因为我对芹菜很新,所以不知道该怎么说。我试过看文件,但我没有找到任何东西(这并不意味着它不在那里)。如果可能的话,我想避免使用单独的队列或经纪人。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以将任务分离到模块并使用

导入它们 在配置

CELERY_IMPORTS = ('module1.tasks','module2.tasks', )

在模块本身中,您应该导入Celery对象本身(通常命名为app)

  

这里的任务参数纯粹是可选的,当然。但是很多时候,当你有不同的模块时,你也希望为它们设置不同的队列

from .celery import app
@app.task(
    bind=True,
    queue='module1',
    options={'queue':'module1'}
)
def task1_of_module1(*args, **kwargs):
    pass