Выполнить групповое задание после выполнения одного группового задания в сельдерее - PullRequest
0 голосов
/ 18 сентября 2018

прямо сейчас я реализую задачи сельдерея в моем приложении.Я хочу, чтобы моя задача выполняла цепочку Но как-то цепочка не работает, групповая работа, но цепочка не работает.Процесс, который я хочу, я хочу, чтобы GROUP_A была обработана после того, как я обработаю GROUP_B и так далее.Я пытался использовать аккорд, но до сих пор не понял.Ниже моя простая цепочка, выполняющая групповое задание в сельдерее.Спасибо за внимание, ребята.

GROUP_A = []

GROUP_B = []

GROUP_C = []

GROUP_D = []


for i in range(3):

    GROUP_A.append(A.s(i+1))
    GROUP_B.append(B.s(i+1))
    GROUP_C.append(C.s(i+1))
    GROUP_D.append(D.s(i+1))

job = chain(

 group(GROUP_A),

 group(GROUP_B),

 group(GROUP_C),

 group(GROUP_D)

)
job.apply_async()

С уважением,

Meikelwis Wijaya

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Проблема, с которой вы сталкиваетесь, заключается в том, что вы должны получить неизменную подпись каждой группы при передаче их в последующую цепочку, поскольку каждая группа сама является задачей (а не вызовом задачи):


job = chain(
 group(GROUP_A).si(),
 group(GROUP_B).si(),
 group(GROUP_C).si(),
 group(GROUP_D).si()
)
job.apply_async()
0 голосов
/ 22 сентября 2018

Не уверен, что я полностью понимаю, но когда вы вызываете задачи с помощью s (), они передадут свои результаты.

В вашем случае для задачи A вы выполняете 3 параллельные задачи (группу) ни с чемпередал это и передал это группе задач B.

Не совсем уверен, что вы пытаетесь достичь, если вы хотите просто связать их в цепочку простым

chain([D.si(i, 1), C.s(1), B.s(1), A.s(1)])

Должно сделать, есличто задачи все принимают 2 аргумента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...