Я пытаюсь создать группу цепочек, и когда группа исполняется, она просто останавливается и зависает, очень похоже на тупик.
Я проверил rabbitmq и resultbackend, и они работают нормально.
вот мои фиктивные задания для воспроизведения:
from pprint import pprint
from time import sleep
@app.task
def a(i):
result = 'A %s' % i
sleep((i%3)/ 10.0)
pprint(result)
return result
@app.task
def b(self,i):
result = 'B %s' % i
sleep((i%3)/ 10.0)
pprint(result)
return result
@app.task
def c(self,i):
result = 'C %s' % i
sleep((i%3)/ 10.0)
pprint(result)
return result
, и я называю их так:
chains = [chain(a.s(i), b.s(i), c.s(i)) for i in range(100)]
g = group(*chains)
result = g.apply_async()
и мои настройки таковы:
# Sensible settings for celery
CELERY_ALWAYS_EAGER = False
CELERY_ACKS_LATE = True
CELERY_TASK_PUBLISH_RETRY = True
CELERY_DISABLE_RATE_LIMITS = False
CELERY_IGNORE_RESULT = False
CELERY_SEND_TASK_ERROR_EMAILS = False
CELERY_TASK_RESULT_EXPIRES = 600
CELERY_REDIS_MAX_CONNECTIONS = 2048
CELERY_TASK_SERIALIZER = "pickle"
CELERY_RESULT_SERIALIZER = "pickle"
CELERY_ACCEPT_CONTENT = ["pickle"]
# CELERY_TASK_SERIALIZER = "json"
# CELERY_ACCEPT_CONTENT = ['application/json']
CELERYD_HIJACK_ROOT_LOGGER = False
CELERYD_PREFETCH_MULTIPLIER = 1
CELERYD_MAX_TASKS_PER_CHILD = 1000
Я думаю, что где-то происходит тупик, потому что то, что происходит, имеет свои симптомы, и никаких ошибок не возникает.Версия сельдерея - 4.1.0.
Что также странно, так это то, что когда я включаю CELERY_ALWAYS_EAGER в значение True, все работает просто отлично, но работает локально, что, конечно, не то, что я хочу.Любая помощь очень ценится, борется с этим уже несколько дней.