celery开发中踩的坑

celery连接redis

当使用redis做broker,redis连接需要密码时:
BROKER_URL='redis://:xxxxx@127.0.0.1:6379/0',
其中xxxxx是密码,密码前必须加冒号。

报错:Celery ValueError: not enough values to unpack (expected 3, got 0)

test.py

import time
from celery import Celery
broker = 'redis://localhost:6379'
backend = 'redis://localhost:6379/0'
celery  = Celery('my_task', broker=broker, backend=backend)
@celery.task
def add(x,y):time.sleep(2.0)return x+y

test1.py

from test import addresult = add.delay(2,8)
while 1:if result.ready():print(result.get())break

报错场景还原

1.运行worker

celery -A test worker --loglevel=info

输出:

(anaconda) C:\Pycham\redis>celery -A test worker --loglevel=info-------------- celery@BOS3UA7Y740V4W9 v4.3.0 (rhubarb)
---- **** -----
--- * ***  * -- Windows-10-10.0.17763-SP0 2019-06-01 17:02:01
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app:         my_task:0x2200a35b128
- ** ---------- .> transport:   redis://:**@localhost:6379//
- ** ---------- .> results:     redis://:**@localhost:6379/0
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ------------------- [queues].> celery           exchange=celery(direct) key=celery[tasks]. test.add[2019-06-01 17:02:01,524: INFO/MainProcess] Connected to redis://:**@localhost:6379//
[2019-06-01 17:02:01,556: INFO/MainProcess] mingle: searching for neighbors
[2019-06-01 17:02:02,620: INFO/MainProcess] mingle: all alone
[2019-06-01 17:02:02,759: INFO/MainProcess] celery@BOS3UA7Y740V4W9 ready.
[2019-06-01 17:02:03,309: INFO/SpawnPoolWorker-2] child process 16140 calling self.run()
[2019-06-01 17:02:03,333: INFO/SpawnPoolWorker-4] child process 10908 calling self.run()
[2019-06-01 17:02:03,372: INFO/SpawnPoolWorker-3] child process 2400 calling self.run()
[2019-06-01 17:02:03,434: INFO/SpawnPoolWorker-1] child process 13848 calling self.run()

2.运行test1.py

test1.py输出

Traceback (most recent call last):File "C:/Pycham/redis/test1.py", line 7, in <module>print(result.get())File "C:\Pycham\anaconda\lib\site-packages\celery\result.py", line 215, in getself.maybe_throw(callback=callback)File "C:\Pycham\anaconda\lib\site-packages\celery\result.py", line 331, in maybe_throwself.throw(value, self._to_remote_traceback(tb))File "C:\Pycham\anaconda\lib\site-packages\celery\result.py", line 324, in throwself.on_ready.throw(*args, **kwargs)File "C:\Pycham\anaconda\lib\site-packages\vine\promises.py", line 244, in throwreraise(type(exc), exc, tb)File "C:\Pycham\anaconda\lib\site-packages\vine\five.py", line 195, in reraiseraise value
ValueError: not enough values to unpack (expected 3, got 0)

worker输出:

[2019-06-01 17:03:59,484: INFO/MainProcess] Received task: test.add[33ee3342-064e-47ef-8f8b-95d65955fd89]
[2019-06-01 17:03:59,491: ERROR/MainProcess] Task handler raised error: ValueError('not enough values to unpack (expected 3, got 0)')
Traceback (most recent call last):File "c:\pycham\anaconda\lib\site-packages\billiard\pool.py", line 358, in workloopresult = (True, prepare_result(fun(*args, **kwargs)))File "c:\pycham\anaconda\lib\site-packages\celery\app\trace.py", line 544, in _fast_trace_tasktasks, accept, hostname = _loc
ValueError: not enough values to unpack (expected 3, got 0)

解决:

.安装eventlet

pip install eventlet

现在我们重新来一遍

1.运行worker

celery -A test worker -l info -P eventlet

2.运行test1.py

10

此时worker的输出

(anaconda) C:\Pycham\redis>celery -A test worker -l info -P eventlet-------------- celery@BOS3UA7Y740V4W9 v4.3.0 (rhubarb)
---- **** -----
--- * ***  * -- Windows-10-10.0.17763-SP0 2019-06-01 17:08:45
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app:         my_task:0x16e16d0c0f0
- ** ---------- .> transport:   redis://:**@localhost:6379//
- ** ---------- .> results:     redis://:**@localhost:6379/0
- *** --- * --- .> concurrency: 4 (eventlet)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this
worker)
--- ***** ------------------- [queues]
- *** --- * --- .> concurrency: 4 (eventlet)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ------------------- [queues].> celery           exchange=celery(direct) key=celery[tasks]. test.add-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ------------------- [queues].> celery           exchange=celery(direct) key=celery[tasks]. test.add[2019-06-01 17:08:45,387: INFO/MainProcess] Connected to redis://:**@localhost:6379//
[2019-06-01 17:08:45,401: INFO/MainProcess] mingle: searching for neighbors
[2019-06-01 17:08:46,434: INFO/MainProcess] mingle: all alone
[2019-06-01 17:08:46,452: INFO/MainProcess] pidbox: Connected to redis://:**@localhost:6
379//.
[2019-06-01 17:08:46,458: INFO/MainProcess] celery@BOS3UA7Y740V4W9 ready.
[2019-06-01 17:09:31,021: INFO/MainProcess] Received task: test.add[82a08465-b8d5-4371-8
edd-1f5b3c922102]
[2019-06-01 17:09:33,034: INFO/MainProcess] Task test.add[82a08465-b8d5-4371-8edd-1f5b3c
922102] succeeded in 2.0s: 10

转载于:https://www.cnblogs.com/-wenli/p/10960241.html

celery开发中踩的坑相关推荐

  1. 记一次ios内购开发中踩的坑

    记一次ios内购开发中踩的坑 前段时间好不容易把APP中的非续期内购上架成功了,过程也是一波三折,各种问题,但最终还是内购审核通过了 通过后我以为就没问题了,但第二天打开xcode运行应用后,准备验证 ...

  2. Widget开发中遇到的坑

    1.在Manifest文件中声明 <receiver android:name=".receiver.GoldWidgetProvider"><intent-fi ...

  3. 前端项目开发中碰到的坑、移动端兼容性问题

    前端开发中碰到的坑.移动端兼容性问题 1.ios兼容input光标高度 问题:input输入光标,在安卓手机上显示没有问题,但是在苹果手机上当点击输入的时候,光标的高度和父盒子的高度一样. **出现问 ...

  4. 你踩过几个?盘点微信H5小游戏开发中的那些坑

    眼下小游戏特别火,不少团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究.但从微信官方文档看 , 却能发现不少坑. 一.运行环境的坑 首先微信小游戏是一个不同于浏览器的 JavaScript ...

  5. 你踩过几个?微信H5小游戏开发中的那些坑

    眼下小游戏特别火,不少团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究.但从微信官方文档看 , 却能发现不少坑. 一.运行环境的坑 1.API兼容性 1.1.网络API BOM的核心是wi ...

  6. 你踩过几个?盘点微信H5小游戏开发中的那些坑 1

    眼下小游戏特别火,不少团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究.但从微信官方文档看 , 却能发现不少坑. 一.运行环境的坑 首先微信小游戏是一个不同于浏览器的 JavaScript ...

  7. javaweb开发中的那些坑

    最近电脑有点问题,没办法就重装系统了,花了一个晚上重装IDE.,配置环境,好不容易把eclipse的环境弄好,加载之前的项目时却又到各种问题,一怒之下,写一篇记录下在javaweb开发中遇到的各种坑 ...

  8. 细数移动IM开发中的那些坑

    移动互联网时代的来临促使我们所有的开发者都要从用户视角出发,基于某一特定场景来创建应用,满足用户需求.通常,在这些应用中,沟通环节都是必不可少的.这就要求创业者不仅要花时间和精力来琢磨用户在某一特定场 ...

  9. 微信小程序开发中遇到的坑

    博主也是一个新入坑的萌新,从上个月20多号开始开发微信小程序,总体感觉入手快,门槛低. 开发中使用的办法比较老土. 下面一一介绍下我在开发中遇到的问题与解决方法 1.下拉刷新与上拉加载 下拉刷新微信提 ...

最新文章

  1. 记录一次没有收集直方图优化器选择全表扫描导致CPU耗尽
  2. 解决:【异常】Caused by: java.lang.IllegalStateException: Zip64 archives are not supported
  3. 郁闷的Alexa破10万。
  4. python新手入门-python新手入门方法
  5. 朱峰谈概念设计(八):电影中的概念设计
  6. matlab胡良剑第五章,MATLAB习题参考答案(胡良剑,孙晓君)
  7. Rete之外的生活– RIP Rete 2013 :)
  8. [Java开发]打印当前路径到控制台
  9. 密码学专题 非对称加密算法指令概述 RSA
  10. 动态规划--Leetcode64.最小路径和
  11. 老化试验机ami怎么寻找过去的数据_广东元耀:您知道塑料臭氧老化试验机检测浓度的方法有哪些吗?...
  12. 服务器系统中怎么调出dos界面,win10怎么进入dos界面_教你两种方法进入win10dos界面...
  13. php 公众号指定人发消息,微信公众号发送模板消息,发送消息到某个用户
  14. c语言顺序结构和选择结构
  15. Generative Image Inpainting with Contextual Attention
  16. 星空华文通过聆讯:吃《中国好声音》老本 华人文化是股东
  17. 第三方INF不包含数字签名信息
  18. OUC_SE_Group014_Blog4
  19. 1.MySQL,JDBC
  20. 忙忙碌碌缓慢进度 项目经理管理的4大误区

热门文章

  1. CSS3 -webkit-animation(动画)
  2. 11-直接内存 Direct Memory
  3. 效能改进之项目例会导入实践 1
  4. Android入门之基本布局
  5. react监听input框里的值
  6. Web服务器超时处理
  7. SQL中的long text
  8. T1-TensorFlow基础
  9. Objective-C中block的底层原理
  10. Node中使用mysql模块遇到的问题