из элеменетов, для каждого элемента запустить отдельную таску?
@celery_app.task()
def ret_many(num):
res = []
for i in range(num):
res.append(i)
return res
@celery_app.task()
def proc_one(num):
print(num)
return num
Если сделать
chain(ret_many.s(10), proc_one.s()).apply_async(),
то после того как выполнится ret_many создастся одна таска proc_one в которую агрументом попадет список из 10 элементов.
А мне нужно чтобы proc_one запустился в 10 экземплярах, каждый с одним аргументов из списка
Запусти в цикле proc_one
https://docs.celeryproject.org/en/latest/userguide/tasks.html#avoid-launching-synchronous-subtasks
Если тебе надо чтобы proc_one отрабатывала после ret_many и с ее результатом, то надо юзать chain, но поскольку proc_one будет n раз, то надо еще один таск который будет ранить proc_one(num) chain(ret_many.s(10), run_proc_one.s()).apply_async() а в run_proc_one(result: list) цикл из proc_one. Но пихать ret_many в таску — излишнее, можно и без.
Обсуждают сегодня