芹菜任务在烧瓶排队

时间:2018-03-08 03:47:30

标签: python celery

我有3个芹菜任务一个接一个地执行。因为每个任务的输出将用作下一个任务的输入。

processSPP.apply_async((selevation,a,c,emailAdd), link=[emailfile.s(),deletefile.s()])
  • 第一个任务:processSPP(生成文件)

  • 第二项任务:emailfile(将生成的文件通过电子邮件发送给用户)

  • 第3个任务:deletefile(从文件系统中删除生成的文件)

当我运行烧瓶应用程序时。

第一个任务首先执行(这是我需要的)

问题是第一个任务完成后第二个和第三个任务开始同时执行。我想在完成第二项任务后开始第3项任务。

1 个答案:

答案 0 :(得分:0)

您可能需要celery.chain

chain(processSPP.s(selevation,a,c,emailAdd), emailfile.s(), deletefile.s()).apply_async()

原始代码的问题在于,您要将emailfiledeletefile链接到processSPP,而您实际想要做的是将emailfile链接到{{ 1}}并将processSPPdeletefile相关联。

在您的问题中使用emailfile的等价物看起来有点像:

link