Сельдерей: опция 'очереди' из подписи, не распространяющейся на холсте
У нас есть настройка, в которой задачи выполняются в разных очередях у разных работников:
@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()
это работает как ожидалось. Мы не уверены, где происходит переопределение. Любая помощь будет оценена.