Comment exécuter le travailleur de céleri sur Windows sans créer le service Windows? Existe-t-il une analogie avec $ celery -A your_application worker
?
Cela se fait de la même manière que sous Linux. Changer de répertoire en module contenant la tâche céleri et appeler "c:\python\python" -m celery -A module.celery worker
a bien fonctionné.
Celery 4.0+
ne supporte pas officiellement la fenêtre déjà. Mais cela fonctionne toujours sur la fenêtre à des fins de développement/test.
Utilisez plutôt eventlet
comme ci-dessous:
pip install eventlet
celery -A <module> worker -l info -P eventlet
Cela fonctionne pour moi sur window 10
+ celery 4.1
+ python 3
.
Cette solution a résolu l'exception suivante:
[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
===== mettre à jour 2018-11 =====
Eventlet a un problème sur subprocess.CalledProcessError:
https://github.com/celery/celery/issues/4063
https://github.com/eventlet/eventlet/issues/357
https://github.com/eventlet/eventlet/issues/413
Alors essayez plutôt gevent
.
pip install gevent
celery -A <module> worker -l info -P gevent
Cela fonctionne pour moi sur window 10
+ celery 4.2
+ python 3.6
oui:
celery -A your_application -l info
notez également que Celery a abandonné la prise en charge de Windows (depuis la v4) ,
pip install celery==3.1.25
3.1.25 était la dernière version qui fonctionne sous Windows (juste testé sur ma machine win10). N'a pas eu besoin de déclasser fleur (moniteur de navigateur pour le céleri) cependant.
Voir aussi le FAQ pour Windows
Il existe deux solutions pour que Celery 4 fonctionne sous Windows:
Voir https://www.distributedpython.com/2018/08/21/celery-4-windows pour plus de détails
J'ai exécuté la tâche céleri en utilisant le serveur RabbitMQ . RabbitMq est meilleur et simple que le courtier Redis
en exécutant le céleri, utilisez la commande "céleri - Un ouvrier du nom de projet --pool = solo -l info" et évitez cette commande "Céleri - Un ouvrier du nom de projet --Loglevel info"
J'ai créé un fichier .bat en plus de mon fichier manage.py avec ce code:
title CeleryTask
::See the title at the top.
cd
cmd /k celery -A MainProject worker -l info
ainsi, chaque fois que je veux utiliser céleri, je double-clique simplement sur ce fichier de traitement par lots et il fonctionne parfaitement ... Et le fait que vous ne puissiez pas utiliser céleri 4 sur Windows est vrai.