如何在Windows上运行芹菜工作者而不创建Windows服务?有什么比喻$ celery -A your_application worker吗?
Sam*_*hen 28
Celery 4.0+没有正式支持窗口.但它仍然适用于某些开发/测试目的的窗口.
eventlet改为使用如下:
pip install eventlet
celery -A <module> worker -l info -P eventlet
Run Code Online (Sandbox Code Playgroud)
它适用于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
Run Code Online (Sandbox Code Playgroud)
=====更新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
Run Code Online (Sandbox Code Playgroud)
这适用于window 10+ celery 4.2+python 3.6
小智 24
是:
celery -A your_application -l info
Run Code Online (Sandbox Code Playgroud)
另请注意,Celery已经放弃了对Windows的支持(自v4起),所以最好
pip install celery==3.1.25
Run Code Online (Sandbox Code Playgroud)
3.1.25是最后一个适用于Windows的版本(刚刚在我的win10机器上测试过).不过不需要降级花(浏览器显示器为芹菜).
另请参阅Windows常见问题解答
And*_*des 20
使用--pool=solo参数编译 Celery 。
例子:
celery -A your-application worker -l info --pool=solo
Celery 4.0+ 尚未正式支持 window。但出于某些开发/测试目的,它仍然可以在窗口上运行。你可以使用其中任何一个:
celery worker --app=app.app --pool=eventlet --loglevel=INFO
celery worker --app=app.app --pool=gevent --loglevel=INFO
celery worker --app=app.app --pool=solo --loglevel=INFO
Run Code Online (Sandbox Code Playgroud)
或使用其他格式:
celery -A <app> worker --loglevel=info -P eventlet
celery -A <app> worker --loglevel=info -P gevent
celery -A <app> worker --loglevel=info -P solo
Run Code Online (Sandbox Code Playgroud)
如果出现context错误,请将 gevent 20.6.2 和 eventlet 升级到 0.26.1 或使用solo
https://www.distributedpython.com/2018/08/21/celery-4-windows/
您可以使用线程在 Windows 上运行 celery,无需额外的库
celery -A your_application worker -P threads
它的完成方式与在 Linux 中相同。将目录更改为包含 celery 任务和调用的模块"c:\python\python" -m celery -A module.celery worker效果很好。
有两种解决方法可使Celery 4在Windows上运行:
有关更多详细信息,请参见https://www.distributedpython.com/2018/08/21/celery-4-windows
我已经使用 RabbitMQ 服务器运行了 celery 任务。RabbitMq 比 redis broker 更好更简单
运行 celery 时,请使用此命令“celery -A project-name worker --pool=solo -l info”并避免使用此命令“celery -A project-name worker --loglevel info”
小智 5
您仍然可以在 Windows 10+ 中使用 celery 4 0+ 只需使用此命令“celery -A projetworker - -pool=solo - l info”而不是“celery - A projectworker -l info”
| 归档时间: |
|
| 查看次数: |
19071 次 |
| 最近记录: |