У меня есть 2 вида задач: Type1 - несколько небольших задач с высоким приоритетом. Type2 - много тяжелых задач с более низким приоритетом.
Изначально у меня была простая конфигурация с маршрутизацией по умолчанию, ключи маршрутизации не использовались. Этого было недостаточно - иногда все рабочие были заняты задачами типа 2, поэтому задача 1 откладывалась. Я добавил ключи маршрутизации:
CELERY_DEFAULT_QUEUE = "default"
CELERY_QUEUES = {
"default": {
"binding_key": "task.#",
},
"highs": {
"binding_key": "starter.#",
},
}
CELERY_DEFAULT_EXCHANGE = "tasks"
CELERY_DEFAULT_EXCHANGE_TYPE = "topic"
CELERY_DEFAULT_ROUTING_KEY = "task.default"
CELERY_ROUTES = {
"search.starter.start": {
"queue": "highs",
"routing_key": "starter.starter",
},
}
Итак, теперь у меня есть 2 очереди - с задачами с высоким и низким приоритетом.
Проблема - как запустить 2 сельдерея с разными настройками параллелизма?
Раньше использовался сельдерей в режиме демона (согласно к этому ), поэтому требовалось только начало /etc/init.d/celeryd start
, но теперь мне нужно запустить 2 разных сельдерея с разными очередями и параллелизм. Как я могу это сделать?