Пример последовательной цепочки задач на celery


--- example.py
  • example.py
#!/usr/bin/env python3

__author__ = 'RemiZOffAlex'
__email__ = 'remizoffalex@mail.ru'

from celery import chain, Signature
import tasks


# Задача
task1_arg1 = 1
task1_arg2 = 2
task2_arg1 = 3

task_list = [
    Signature(
        task = tasks.task1,
        kwargs = {
            "arg1": task1_arg1,
            "arg2": task1_arg2
        }
    ),
    Signature(
        task = tasks.task2,
        kwargs = {'arg1': task2_arg1},
        # По умолчанию результат каждой предыдущей задачи поступает
        # в качестве первого аргумента каждой последующей.
        # Параметр immutable меняет поведение и первый аргумент нужно задавать
        # явно
        immutable=True
    )
]

task = chain(*task_list).apply_async()
print('task: {}'.format(task.id))

Ресурсы


GitLab
© RemiZOffAlex