Ответ 1
Это было сделано так же, как в Linux. Изменение каталога на модуль, содержащий задачу "c:\python\python" -m celery -A module.celery worker
и вызов "c:\python\python" -m celery -A module.celery worker
работал хорошо.
Как запустить работника сельдерея на Windows без создания службы Windows? Есть ли аналогия с $ celery -A your_application worker
?
Это было сделано так же, как в Linux. Изменение каталога на модуль, содержащий задачу "c:\python\python" -m celery -A module.celery worker
и вызов "c:\python\python" -m celery -A module.celery worker
работал хорошо.
да:
celery -A your_application -l info
Также обратите внимание, что в Celery отказались от поддержки Windows (начиная с версии 4), поэтому лучше
pip install celery==3.1.25
3.1.25 была последней версией, которая работает на windows (только что протестирована на моей машине win10). Не нужно было понизить цветок (браузер монитор для сельдерея), хотя.
Смотрите также FAQ для Windows
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
Есть два обходных пути, чтобы заставить Celery 4 работать на Windows:
См. Https://www.distributedpython.com/2018/08/21/celery-4-windows для более подробной информации.
Я сделал файл .bat помимо моего manage.py файла с этим кодом:
title CeleryTask
::See the title at the top.
cd
cmd /k celery -A MainProject worker -l info
поэтому каждый раз, когда я хочу запустить сельдерей, я просто дважды щелкаю этот командный файл, и он работает отлично. И тот факт, что вы не можете использовать сельдерей 4 на окнах, это правда.
Я запустил задачу сельдерея, используя сервер RabbitMQ. RabbitMq лучше и проще, чем Redis Broker
во время работы celery используйте эту команду "celery -A project-name worker --pool = solo -l info" и избегайте этой команды "celery -A project-name worker - -l oglevel info"