Вы имеете в виду что-то вроде этого :
ery я хочу запускать задачу только тогда, когда все остальные задачи выполнены. Я нашел некоторые ресурсы, как этот:Сельдерей Начало задачи, когда другие задачи выполнены а такжеЗапуск задачи после завершения всех задач Но я новичок в сельдерее и не мог понять выше (или много других ресурсов по этому вопросу).
Итак, я определил задачу как вtasks.py:
@celapp.task()
def sampleFun(arg1, arg2, arg3):
# do something here
и я называю это так:
for x in xrange(4):
tasks.sampleFun.delay(val1, val2, val3)
И я предполагаю, что будет создано 4 разных задания. Это на самом деле происходит, как я вижу то же самое на веб-интерфейсеЦветок сельдерея.
Теперь я хотел бы добавить еще одну задачу. СказатьfinalTask это должно начаться только после того, как все вышеуказанные 4 задачи завершат свое выполнение.
Я также читал некоторые документы нагруппы и аккорды в сельдерее но это говорит о том, что если я хочу сделать это, мне нужно сгруппировать свои задачи вместе, чтобы они выполнялись параллельно. Я не хочу этого делать. (Может быть, это хорошая идея, но сейчас моя цель - уметь понимать вещи. Поэтому в данный момент я не особо сосредоточен на производительности и т. Д.)
Как это сделать? Другой, более простой вопрос, который может показаться довольно глупым: когда мы говорим,tasks.sampleFun.delay
это создает асинхронные задачи или нет?