Я пытаюсь построить следующий рабочий процесс в сельдерее:
(chainA)
task1 -- task2 -- task3--|
|
(chainB) | (group)
task1 -- task2 -- task3--|-------------
|
(chainC) |
task1 -- task2 -- task3--|
.
.
.
Я в конечном итоге с этим кодом:
list_chains = build_s_chains()
group(*list_chains)()
Момент группы строк (* list_chains) ()выполняется все останавливается и останавливается.Похоже на тупик, без ошибки.
Если я попытаюсь выполнить цепочки в цикле for, все будет работать нормально, но если я выполню их в цикле for, я не смогу подключить другую задачу наконец цикла.Я знаю, что это определение аккорда, я пробовал также аккорд, он все еще блокирует.
Проверил мой rabbitmq и бэкэнд-результат, все выглядит хорошо, так как я могу запустить цепочки вручную.Мне кажется, что это должно быть просто, но я не вижу причины, по которой это не работает.Приветствуется любая помощьЯ видел другие ответы и документацию, согласно им это должно работать.
и вот мои настройки сельдерея:
# Sensible settings for celery
CELERY_ALWAYS_EAGER = False
CELERY_ACKS_LATE = True
CELERY_TASK_PUBLISH_RETRY = True
CELERY_DISABLE_RATE_LIMITS = False
# By default we will not ignore result
# If you want to see results and try out tasks_old interactively, change it to False
# Or change this setting on tasks_old level
CELERY_IGNORE_RESULT = False
CELERY_SEND_TASK_ERROR_EMAILS = False
CELERY_TASK_RESULT_EXPIRES = 600
update: когда я устанавливаю CELERY_ALWAYS_EAGER = True, тогда группаработает нормально с командой
group(*chain_list)()
, но работает, конечно, локально, а это не то, что мне нужно.