celery开发中踩的坑
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开发中踩的坑相关推荐
- 记一次ios内购开发中踩的坑
记一次ios内购开发中踩的坑 前段时间好不容易把APP中的非续期内购上架成功了,过程也是一波三折,各种问题,但最终还是内购审核通过了 通过后我以为就没问题了,但第二天打开xcode运行应用后,准备验证 ...
- Widget开发中遇到的坑
1.在Manifest文件中声明 <receiver android:name=".receiver.GoldWidgetProvider"><intent-fi ...
- 前端项目开发中碰到的坑、移动端兼容性问题
前端开发中碰到的坑.移动端兼容性问题 1.ios兼容input光标高度 问题:input输入光标,在安卓手机上显示没有问题,但是在苹果手机上当点击输入的时候,光标的高度和父盒子的高度一样. **出现问 ...
- 你踩过几个?盘点微信H5小游戏开发中的那些坑
眼下小游戏特别火,不少团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究.但从微信官方文档看 , 却能发现不少坑. 一.运行环境的坑 首先微信小游戏是一个不同于浏览器的 JavaScript ...
- 你踩过几个?微信H5小游戏开发中的那些坑
眼下小游戏特别火,不少团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究.但从微信官方文档看 , 却能发现不少坑. 一.运行环境的坑 1.API兼容性 1.1.网络API BOM的核心是wi ...
- 你踩过几个?盘点微信H5小游戏开发中的那些坑 1
眼下小游戏特别火,不少团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究.但从微信官方文档看 , 却能发现不少坑. 一.运行环境的坑 首先微信小游戏是一个不同于浏览器的 JavaScript ...
- javaweb开发中的那些坑
最近电脑有点问题,没办法就重装系统了,花了一个晚上重装IDE.,配置环境,好不容易把eclipse的环境弄好,加载之前的项目时却又到各种问题,一怒之下,写一篇记录下在javaweb开发中遇到的各种坑 ...
- 细数移动IM开发中的那些坑
移动互联网时代的来临促使我们所有的开发者都要从用户视角出发,基于某一特定场景来创建应用,满足用户需求.通常,在这些应用中,沟通环节都是必不可少的.这就要求创业者不仅要花时间和精力来琢磨用户在某一特定场 ...
- 微信小程序开发中遇到的坑
博主也是一个新入坑的萌新,从上个月20多号开始开发微信小程序,总体感觉入手快,门槛低. 开发中使用的办法比较老土. 下面一一介绍下我在开发中遇到的问题与解决方法 1.下拉刷新与上拉加载 下拉刷新微信提 ...
最新文章
- 记录一次没有收集直方图优化器选择全表扫描导致CPU耗尽
- 解决:【异常】Caused by: java.lang.IllegalStateException: Zip64 archives are not supported
- 郁闷的Alexa破10万。
- python新手入门-python新手入门方法
- 朱峰谈概念设计(八):电影中的概念设计
- matlab胡良剑第五章,MATLAB习题参考答案(胡良剑,孙晓君)
- Rete之外的生活– RIP Rete 2013 :)
- [Java开发]打印当前路径到控制台
- 密码学专题 非对称加密算法指令概述 RSA
- 动态规划--Leetcode64.最小路径和
- 老化试验机ami怎么寻找过去的数据_广东元耀:您知道塑料臭氧老化试验机检测浓度的方法有哪些吗?...
- 服务器系统中怎么调出dos界面,win10怎么进入dos界面_教你两种方法进入win10dos界面...
- php 公众号指定人发消息,微信公众号发送模板消息,发送消息到某个用户
- c语言顺序结构和选择结构
- Generative Image Inpainting with Contextual Attention
- 星空华文通过聆讯:吃《中国好声音》老本 华人文化是股东
- 第三方INF不包含数字签名信息
- OUC_SE_Group014_Blog4
- 1.MySQL,JDBC
- 忙忙碌碌缓慢进度 项目经理管理的4大误区