2012-06-05 3 views
0

У меня есть 4 запланированных задания в Сельдерей, которые выполняются каждые N секунд. Теперь логика приложения предоставляет только один рабочий для каждой задачи (он записывает данные из db, а параллельное выполнение не допускается).Задайте количество рабочих для каждой задачи в расписании

Но я могу установить только один сотрудник для всех задач с помощью CELERYD_CONCURRENCY = 1

Как я могу установить ни одного рабочего для каждой задачи? Спасибо

ответ

0

Я думаю, вы имеете в виду, что вы не хотите, чтобы ваши 4 задачи выполнялись параллельно? Если это так, вы должны использовать что-то вроде «Сеть» подзадач, см:

http://docs.celeryproject.org/en/latest/userguide/canvas.html#chains

Просто добавьте ваши задачи в цепи с | и затем выполнить его с помощью delay() или async_delay(). Таким образом, ваша следующая задача начнется только после завершения предыдущего. И каждому работнику из пула будет назначена каждая задача (которая может быть одним и тем же работником или другой).

Смежные вопросы