Как запустить сельдерей на окнах?

Как запустить работника сельдерея на Windows без создания службы Windows? Есть ли аналогия с $ celery -A your_application worker?

Ответ 1

Это было сделано так же, как в Linux. Изменение каталога на модуль, содержащий задачу "c:\python\python" -m celery -A module.celery worker и вызов "c:\python\python" -m celery -A module.celery worker работал хорошо.

Ответ 2

да:

celery -A your_application -l info

Также обратите внимание, что в Celery отказались от поддержки Windows (начиная с версии 4), поэтому лучше

pip install celery==3.1.25

3.1.25 была последней версией, которая работает на windows (только что протестирована на моей машине win10). Не нужно было понизить цветок (браузер монитор для сельдерея), хотя.

Смотрите также FAQ для Windows

Ответ 3

Celery 4.0+ официально не поддерживает окно уже. Но он все еще работает в окне для некоторых целей разработки/тестирования.

eventlet этого используйте eventlet как eventlet ниже:

pip install eventlet
celery -A <module> worker -l info -P eventlet

У меня работает на window 10 + celery 4.1 + python 3.

Это решение решило следующее исключение:

[2017-11-16 21:19:46,938: ERROR/MainProcess] Task handler raised error: ValueError('need more than 0 values to unpack',)
Traceback (most recent call last):
  File "c:\users\wchen8\work\venv\weinsta\lib\site-packages\billiard\pool.py", line 358, in workloop
    result = (True, prepare_result(fun(*args, **kwargs)))
  File "c:\users\wchen8\work\venv\weinsta\lib\site-packages\celery\app\trace.py", line 525, in _fast_trace_task
    tasks, accept, hostname = _loc
ValueError: need more than 0 values to unpack

===== Обновление 2018-11 =====

У Eventlet есть проблема с subprocess.CalledProcessError:

https://github.com/celery/celery/issues/4063

https://github.com/eventlet/eventlet/issues/357

https://github.com/eventlet/eventlet/issues/413

Так что попробуйте вместо этого gevent.

pip install gevent
celery -A <module> worker -l info -P gevent

Это работает для меня на window 10 + celery 4.2 + python 3.6

Ответ 4

Есть два обходных пути, чтобы заставить Celery 4 работать на Windows:

  • использовать пул параллелизма eventlet, gevent или solo (если ваши задачи как I/O, а не как CPU)
  • установите переменную среды FORKED_BY_MULTIPROCESSING = 1 (это то, что фактически приводит к сбою базового биллиардного пакета под Windows начиная с версии 4)

См. Https://www.distributedpython.com/2018/08/21/celery-4-windows для более подробной информации.


Ответ 5

Я сделал файл .bat помимо моего manage.py файла с этим кодом:

title CeleryTask
::See the title at the top.
cd 
cmd /k celery -A MainProject worker -l info

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

Ответ 6

Я запустил задачу сельдерея, используя сервер RabbitMQ. RabbitMq лучше и проще, чем Redis Broker

во время работы celery используйте эту команду "celery -A project-name worker --pool = solo -l info" и избегайте этой команды "celery -A project-name worker - -l oglevel info"