Celery: выполнение нескольких асинхронных подзадач приводит к тому, что & ldquo; никогда не вызывать results.get () & rdquo; ошибка

Я думаю, что было бы полезно сослаться на ответ, объясняющий это тоже. Это о boost::compressed_pair на Логан Капальдо .

1
задан mstorkson 19 March 2019 в 15:36
поделиться

1 ответ

Итак, я оглянулся и думаю, что проблема в том, что я применяю неправильную стратегию для того, что я хочу сделать. Я хочу запустить N задач, а затем сообщить, работали они или нет. Тем не менее, каждая подзадача уже сообщает о своем состоянии в базу данных и поэтому ожидает проверки, которая просто удерживает вызывающего работника заблокированным без всякой цели.

Я изменил функцию следующим образом:

    job = group(tasks) if len(tasks) == 1 else group(*tasks)
    job.apply_async()

И это все. Задачи запускаются, и вызывающая функция завершается, освобождая работника. Подзадачи выполняются как обычно, и я не получаю ошибки. То, что я пытался сделать, имеет смысл, только если я пытаюсь сделать звонок, который зависит от получения результатов каждой подзадачи.

0
ответ дан mstorkson 19 March 2019 в 15:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: