Celery not enough values to unpack (expected"/>
windows7 x64 下使用Celery not enough values to unpack (expected
Celery ValueError: not enough values to unpack (expected 3, got 0)的解决方案
windows7 x64 下使用Celery
Celery ValueError: not enough values to unpack (expected 3, got 0)的解决方案
参考文章来源:
背景: 学习使用celery,环境如下:
本地环境如下:
Windows 7 x64
Python 3.6
Celery 4.3
Celery-with-redis
Django 1.11.11
Django-redis 4.10.0
必须安装: pip install eventlet
直接上代码
main.py 代码
from celery import Celery
import osos.environ["DJANGO_SETTINGS_MODULE"] = "*****.settings_dev" #引入你项目的环境地址
app = Celery('tasks', broker='redis://192.168.133.128:6379/4', ) #必须写 tasks, broker是连接的数据库,此处为 redis
# app.config_from_object('celery_tasks.config') #此处,可选
app.autodiscover_tasks(['celery_tasks.sms'#你task.py里的执行函数名
])
task.py 文件的代码
from celery_tasks.main import app
@app.task(bind=True, name='send_sms', retry_backoff=3, )
def send_sms(self, mobile, sms_code):print("qqqqq", self) #查看一下 print("++++++++++++++++++")#标记一下print(mobile, sms_code) #打印一下收到的参数,,如果上面的能正确输出 ,,后面可以写你自己的代码了
调用函数代码
send_sms.delay(mobile=mobile, sms_code=sms_code)#mobile,sms_code 为传去的参数,建议使用这样的方式去传。
以上准备完成后,在终端上进入项目目录,执行命令:
celery -A celery_tasks.main worker -l info -P eventlet
结果如下:
>>>>celery -A celery_tasks.main worker -l info -P eventlet-------------- celery@x201t-PC v4.3.0 (rhubarb)
---- **** -----
--- * *** * -- Windows-7-6.1.7601-SP1 2019-05-26 10:18:36
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: tasks:0x45b7588
- ** ---------- .> transport: redis://192.168.133.128:6379/4
- ** ---------- .> results: disabled://
- *** --- * --- .> concurrency: 4 (eventlet)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ------------------- [queues].> celery exchange=celery(direct) key=celery[tasks]. send_sms[2019-05-26 10:18:36,594: INFO/MainProcess] Connected to redis://192.168.133.128:6379/4
[2019-05-26 10:18:36,610: INFO/MainProcess] mingle: searching for neighbors
[2019-05-26 10:18:37,648: INFO/MainProcess] mingle: all alone
[2019-05-26 10:18:37,659: WARNING/MainProcess] c:\users\administrator\envs\meiduo_mall\lib\sit
e-packages\celery\fixups\django.py:202: UserWarning: Using settings.DEBUG leads to a memory le
ak, never use this setting in production environments!warnings.warn('Using settings.DEBUG leads to a memory leak, never '
[2019-05-26 10:18:37,660: INFO/MainProcess] celery@x201t-PC ready.
[2019-05-26 10:18:37,675: INFO/MainProcess] pidbox: Connected to redis://192.168.133.128:6379/
4.
以上是启动成功情况,
以下是有任务,成功的输出:
[2019-05-26 10:19:06,796: INFO/MainProcess] Received task: send_sms[72ad5196-eed1-498e-99c0-a1fe703b01fa]
[2019-05-26 10:19:06,798: WARNING/MainProcess] qqqqq
[2019-05-26 10:19:06,799: WARNING/MainProcess] <@task: send_sms of tasks at 0x45b7588>
[2019-05-26 10:19:06,799: WARNING/MainProcess] ++++++++++++++++++
[2019-05-26 10:19:06,799: WARNING/MainProcess] 13455678894
[2019-05-26 10:19:06,800: WARNING/MainProcess] 017119
[2019-05-26 10:19:06,800: INFO/MainProcess] Task send_sms[72ad5196-eed1-498e-99c0-a1fe703b01fa] succeeded in 0.0160000000
00531145s: None
以上是自己并结合网络大神文章,自己试出来的。感谢各位关注!
更多推荐
windows7 x64 下使用Celery not enough values to unpack (expected
发布评论