Как можно запустить несколько задач сельдерея параллельно? - PullRequest
3 голосов
/ 10 октября 2019

У меня есть две задачи.

@app.task
def run1():
    while True:
        print('run1')
        time.sleep(5)
    return


@app.task
def run2():
    while True:
        print('run2')
        time.sleep(2)
    return

Как я могу запустить эти две задачи одновременно с одной и той же консоли, из одной команды (желательно с другим числом workers).

1 Ответ

1 голос
/ 10 октября 2019

Вам необходимо использовать group:

Примитив группы - это подпись, которая принимает список задач, которые должны применяться параллельно.

Пример из оболочки django:

>>> from celery import group
>>> from myapp.tasks import run1, run2
>>>
>>> run_group = group(run1.s(), run2.s())
>>> run_group()
<GroupResult: 06b3e88b-6c10-4ba5-bb32-5005c82eedfe [cc734fbd-3531-45d1-8575-64f4eff35523, 
1075e822-a6e2-4c34-8038-369613ff687d]>

Более сложное использование см. В документации по group .

...