Я использую сельдерей, у меня есть несколько задач, которые нужно выполнить в порядке.
Например, у меня есть эта задача:
@celery.task
def tprint(word):
print word
И я хочу сделать что-то вроде этого:
>>> chain(tprint.s('a') | tprint.s('b'))()
Тогда я получаю TypeError: tprint() takes exactly 1 argument (2 given)
.
То же самое с аккордом, в этой ситуации, в которой мне нужна задача, которая будет выполнена после группы задач:
>>> chord([tprint.s('a'), tprint.s('b')])(tprint.s('c'))
Итак, как справиться с этой ситуацией? Меня не волнует результат каждой задачи, но их нужно выполнить в порядке.
Добавить второй параметр не будет работать:
@celery.task
def tprint(word, ignore=None):
print word
>>> chain(tprint.s('a', 0) | tprint.s('b'))()
Это напечатает "a" и "None".