2. Celery Bug: ValueError: need more than 0 values to unpack

按照Celery的官方文档,开始学习最简单的示例add,结果Celery worker收到任务后就报错了,错误堆栈如下:

[2018-03-21 09:43:23,123: INFO/SpawnPoolWorker-2] child process 4404 calling sel
f.run()
[2018-03-21 09:43:23,207: INFO/SpawnPoolWorker-3] child process 7432 calling sel
f.run()
[2018-03-21 09:43:24,688: INFO/MainProcess] Received task: tasks.add[277ba2c5-31
0f-459b-a396-b895400d4c3e]
[2018-03-21 09:43:24,695: ERROR/MainProcess] Task handler raised error: ValueErr
or('need more than 0 values to unpack',)
Traceback (most recent call last):
  File "E:\Python34\lib\site-packages\billiard\pool.py", line 358, in workloop
    result = (True, prepare_result(fun(*args, **kwargs)))
  File "E:\Python34\lib\site-packages\celery\app\trace.py", line 518, in _fast_t
race_task
    tasks, accept, hostname = _loc
ValueError: need more than 0 values to unpack

经过Google搜索,发现在Windows下运行就会出现此问题,参见官方Issue

解决办法就是运行Celery worker的时候,指定参数'-P eventlet', 这个参数用于指定worker的运行模式,默认为prefork,这是使用eventlet也就意味着使用协程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值