windows7 x64 下使用Celery not enough values to unpack (expected

    xiaoxiao2024-11-16  77

    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)的解决方案 参考文章来源:https://blog.csdn.net/qq_30242609/article/details/79047660

    背景: 学习使用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 os os.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

    以上是自己并结合网络大神文章,自己试出来的。感谢各位关注!

    最新回复(0)