复杂的画布卡在中间

时间:2017-07-27 10:29:39

标签: celery celery-task

设置: Celery 4.1.0,经纪人= RabbitMQ 3.6.5,后端= Redis 3.2.5

考虑以下画布:

celery worker -A worker.celeryapp:app -l info -Q default -c 2 -n defaultworker@%h -Ofair

@app.task(name='task_1',
          bind=True,
          base=MyConnectionHolderTask)
def task_1(self, feed_id, flow_id, **kwargs):
    do_something()

task_1 = t_1.si(feed_id, flow_id)
  .
  .
task_13 = t_13.si(feed_id, flow_id)


       (task_1 |
        group((task_2 | group(task_3, task_4)),
              task_5,
              task_6,
              task_7,
              task_8) |
        task_9 |
        task_10 |
        task_11 |
        task_12 |
        task_13).apply_async(link_error=unlock)

意味着我有一系列任务,其中一个任务是一组多个任务,其中一个是大小为2的链(后一个任务为2个组)。

预期行为

所有任务都成功,所以期待完成,直到task_13

实际行为

task_4是最后一次运行。 task_9和其余的(10..13)没有运行。 如果我取消task_3&组task_4它确实有效(直到13):

       (task_1 |
        group((task_2 | task_3 | task_4),
              task_5,
              task_6,
              task_7,
              task_8) |
        task_9 |
        task_10 |
        task_11 |
        task_12 |
        task_13).apply_async(link_error=unlock)

参考:Issue in github

0 个答案:

没有答案