Сельдерей несколько рабочих, но только один рабочий бить - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь разрешить пользователям планировать периодические задачи.Я также работаю с несколькими сельдереями в контейнере.Моя команда для этого контейнера выглядела следующим образом:

celery worker -c 4 -B -l INFO -A my.celery.app.celery --scheduler my.celery.scheduler.SchedulerClass

, но произошло то, что запланированное задание выполнялось 4 раза, когда пришло время выполнить задание.

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

celery worker -c 4 -l INFO -A my.celery.app.celery

и добавил еще один контейнер, точно такой же, как тот, который выполняет команду:

celery -l INFO -B -A my.celery.app.celery --scheduler my.celery.scheduler.SchedulerClass

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

Любые идеи о том, как это сделать, будут полезны

1 Ответ

1 голос
/ 04 апреля 2019

Из документации :

Вы также можете встроить ритм в работника, включив опцию -B работников, это удобно, если вы никогда не будете запускать более одного рабочего узла, но он обычно не используется и по этой причине не рекомендуется для производственного использования. :

$ сельдерей -Продвижник -B

Таким образом, вы, вероятно, должны запустить beat независимо, используя:

celery -l INFO -A my.celery.app.celery beat --scheduler my.celery.scheduler.SchedulerClass

...