Как зарегистрировать задание «Сельдерей» для конкретного работника? - PullRequest
0 голосов
/ 26 апреля 2018

Я занимаюсь разработкой веб-приложения на Python / Django, и у меня есть несколько задач, которые выполняются в сельдерее.

Мне нужно запускать задачу A по одному, поэтому я создал работника с --concurrency = 1 и направил задачу A этому работнику с помощью следующей команды.

celery -A proj worker -Q A -c 1 -l INFO

Все работает нормально, так как эта рабочая задача «А» и другие задачи направляются в очередь по умолчанию.

Но выше рабочий возвращает все задачи, когда я использую команду inspect, чтобы получить зарегистрированное задание для рабочего. Это абсолютно верно, потому что когда я запускаю работника, он отображает все задачи проектов как зарегистрированную задачу, но обрабатывает только задачу A.

Ниже приводится вывод работника, когда я его запускаю.

$ celery -A proj worker -Q A -c 1 -l INFO

 -------------- celery@pet_sms v4.0.2 (latentcall)
---- **** ----- 
--- * ***  * -- Linux-4.8.10-040810-generic-x86_64-with-Ubuntu-16.04-xenial 2018-04-26 14:11:49
-- * - **** --- 
- ** ---------- [config]
- ** ---------- .> app:         proj:0x7f298a10d208
- ** ---------- .> transport:   redis://localhost:6379/0
- ** ---------- .> results:     disabled://
- *** --- * --- .> concurrency: 1 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ----- 
 -------------- [queues]
                .> A exchange=A(direct) key=A


[tasks]
  . task_one
  . task_two
  . task_three
  . A
  . task_four
  . task_five

Есть ли способ зарегистрировать конкретное задание для рабочего в сельдерее?

...