Как запустить работника сельдерея на 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"