Сельдерей: опция 'очереди' из подписи, не распространяющейся на холсте

У нас есть настройка, в которой задачи выполняются в разных очередях у разных работников:

@cel.task(bind=true, acks_late=true, queue='A')
def taskA(self):
   pass

@cel.task(bind=true, acks_late=true, queue='B')
def taskB(self):
   pass

У нас есть два работника: workerA, который прослушивает в очереди ='A', и workerB, который прослушивает в очереди ='B'.

Мы создали простую цепочку следующим образом:

ch = celery.chain(taskA.si(), taskB.si())
ch.apply_async()

Ожидается, что это будет запускать taskA в работнике A и taskB в работнике B. Однако мы получаем ошибку в workerA:

Received unregistered task of type 'cel.taskB'.

Однако, если я изменю код на:

ch = celery.chain(taskA.s().set(queue='A'), taskB.si(queue='B'))
ch.apply_async()

это работает как ожидалось. Мы не уверены, где происходит переопределение. Любая помощь будет оценена.

0 ответов

Другие вопросы по тегам