У меня есть родительская задача, из которой я выполняю подзадачи через группу:
@task()
def parent():
...
for x in big_long_loop:
subtasks = []
...
subtasks.append(subtask.s(foo, bar, baz))
...
g = group(*subtasks)
g.delay()
У подзадач есть выделенная очередь и рабочий, отдельный от родительской.Кроме того, работник очереди подзадач находится на удаленном сервере с сервера, выполняющего родительскую задачу.
Время от времени, в разгар запуска групп подзадач, эта родительская задача не выполняется или время ожидания истекло.После этого момента (удаленный) рабочий для очереди подзадач становится бесполезным.Он колеблется онлайн / офлайн в цветке, и в конечном итоге просто перестает выполнять задачи.Они получены, но никогда не запускаются удаленным работником.
Это ожидаемое поведение?Если родитель в конечном итоге не преуспевает, как это повлияет на любые подзадачи, которые были созданы во время этой задачи или в будущем, когда задача будет выполнена снова?Это как-то связано с тем, что работник haywire находится на удаленном сервере?Обратите внимание, что на этом сервере есть другие рабочие для других очередей, и они не мерцают в автономном режиме.