Celery ValueError: not enough values to unpack (expected 3, got 0)的解决方案

2023-05-16

背景

最近因项目需要,学习任务队列Celery的用法,跟着官网写Demo,出现如题错误,最终在github的Issues里找到解决办法,记录如下。

场景还原

本地环境如下:

  • Windows 10
  • Python 3.5.2
  • Celery 4.1.0

我是跟着这个前人翻译的中文文档敲的Demo。

代码tasks.py

from celery import Celery

app = Celery('tasks', broker='redis://:xxxx@xxx.xxx.xxx.xx:6379/0')

@app.task
def add(x, y):
    return x + y

执行worker

celery -A tasks worker --loglevel=info

输出:

 -------------- celery@kong9wei11 v4.1.0 (latentcall)
---- **** -----
--- * ***  * -- Windows-10-10.0.14393-SP0 2018-01-12 19:01:39
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app:         tasks:0x157fd248550
- ** ---------- .> transport:   redis://:**@114.67.225.0:6379/0
- ** ---------- .> results:     disabled://
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
 -------------- [queues]
                .> celery           exchange=celery(direct) key=celery


[tasks]
  . tasks.add

[2018-01-12 19:01:40,029: INFO/MainProcess] Connected to redis://:**@114.67.225.0:6379/0
[2018-01-12 19:01:40,130: INFO/MainProcess] mingle: searching for neighbors
[2018-01-12 19:01:40,550: INFO/SpawnPoolWorker-1] child process 9048 calling self.run()
[2018-01-12 19:01:40,557: INFO/SpawnPoolWorker-2] child process 9028 calling self.run()
[2018-01-12 19:01:40,578: INFO/SpawnPoolWorker-3] child process 13064 calling self.run()
[2018-01-12 19:01:40,611: INFO/SpawnPoolWorker-4] child process 9856 calling self.run()
[2018-01-12 19:01:41,693: INFO/MainProcess] mingle: all alone
[2018-01-12 19:01:42,212: INFO/MainProcess] celery@xx ready.

调用任务代码manager.py

from tasks import add

add.delay(4, 4)

执行

python manager.py

然后worker里报错:

[2018-01-12 19:08:15,545: INFO/MainProcess] Received task: tasks.add[5d387722-5389-441b-9b01-a619b93b4702]
[2018-01-12 19:08:15,550: ERROR/MainProcess] Task handler raised error: ValueError('not enough values to unpack (expected 3, got 0)',)
Traceback (most recent call last):
  File "d:\programmingsoftware\python35\lib\site-packages\billiard\pool.py", line 358, in workloop
    result = (True, prepare_result(fun(*args, **kwargs)))
  File "d:\programmingsoftware\python35\lib\site-packages\celery\app\trace.py", line 525, in _fast_trace_task
    tasks, accept, hostname = _loc
ValueError: not enough values to unpack (expected 3, got 0)

解决:

原网页:Unable to run tasks under Windows

看别人描述大概就是说win10上运行celery4.x就会出现这个问题,解决办法如下,原理未知:

先安装一个`eventlet

pip install eventlet

然后启动worker的时候加一个参数,如下:

celery -A <mymodule> worker -l info -P eventlet

然后就可以正常的调用了。

运行

python manage.py

worker里输出:

[2018-01-12 19:35:33,640: INFO/MainProcess] Received task: tasks.add[3f9b5255-60a2-4a08-96b6-38f5fbc31543]
[2018-01-12 19:35:33,640: INFO/MainProcess] Task tasks.add[3f9b5255-60a2-4a08-96b6-38f5fbc31543] succeeded in 0.0s: 8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Celery ValueError: not enough values to unpack (expected 3, got 0)的解决方案 的相关文章

  • 让 celery 等待任务完成

    我希望 celery 等待特定任务完成 因此我在 celery 本身旁边安装了 celery results backend 但我不明白如何编写任务调用才能等待 因为我当前收到以下错误 example task missing 1 requ
  • Django Celery 日志记录最佳实践

    我正在尝试让 Celery 日志记录与Django 我已经设置了日志记录settings py转到控制台 这工作正常 因为我正在托管Heroku 在每个模块的顶部 我有 import logging logger logging getLo
  • 无法将 django 模型导入到 celery 任务中

    我有以下任务 from future import absolute import from myproject celery import app from myapp models import Entity app task def
  • 如何通过celery任务访问orm?

    我正在尝试使用 sqlalchemy celerybeats 翻转数据库中特定类型对象的布尔标志 但是如何从tasks py 文件访问我的orm from models import Book from celery decorators
  • Docker - Celery 作为守护进程 - 未找到 pidfiles

    我似乎已经尝试了这里的所有解决方案 但似乎没有一个有效 我不确定我错过了什么 我试图通过我的 docker 容器将 celery 作为守护进程运行 root bae5de770400 itapp itapp etc init d celer
  • ImportError:无法导入名称 celery

    我正在尝试使用 Celery Redis Flask 运行一些后台作业 我的应用程序结构是 myapp celery worker py manage py myapp init py app py bot init py tasks py
  • Celery 在任何更改时自动重新加载

    当模块发生更改时 我可以使 celery 自动重新加载CELERY IMPORTS in settings py 我尝试让母模块检测子模块的变化 但它没有检测到子模块的变化 这让我明白检测不是由 celery 递归完成的 我在文档中搜索了它
  • Celery 任务已收到但未执行

    我有已收到但不会执行的 Celery 任务 我正在使用 Python 2 7 和 Celery 4 0 2 我的消息代理是 Amazon SQS 这是的输出celery worker celery worker A myapp celery
  • Django Celery 在启动时避免崩溃

    我最近用 RabbitMQ 和 Celery 配置了一个新服务器 当我尝试在机器上启动 Celerybeat 时 它会启动几秒钟然后停止 我已授予日志文件正确的权限 并将所有者更改为应用程序用户 我还检查了 celerybeat log 文
  • 这是以编程方式终止(取消)芹菜任务的最佳方法

    根据 Celery 的文档 我们不应该使用terminate选项中revoke 取消正在执行的任务的函数 当任务陷入困境时 终止选项是管理员的最后手段 它不是为了终止任务 而是为了终止正在执行任务的进程 并且该进程可能在发送信号时已经开始处
  • 模拟单元测试中时间的流逝

    我已经为客户构建了一个付费 CMS 发票系统 我需要更加严格地进行测试 我将所有数据保存在 Django ORM 中 并有一堆以不同时间间隔运行的 Celery 任务 以确保发送新发票和发票提醒 并在用户不支付发票时切断访问权限 例如 我希
  • celery-django 找不到设置

    我有一个 Django 项目 使用Celery http pypi python org pypi django celery用于运行异步任务 我正在 Windows XP 计算机上进行开发 启动我的 Django 服务器 python m
  • Django Celery 内存未释放

    在我的 django 项目中 我有以下依赖项 Django 1 5 4 django celery 3 1 9 amqp 1 4 3 海带 3 0 14 librabbitmq 1 0 3 按照建议https stackoverflow c
  • 通过pdb调试djcelery的celeryd

    有人尝试过使用 pdb 调试 celeryd 工作程序吗 每当遇到断点 通过 pdb 运行 celeryd 或者通过pdb set trace 我遇到了以下错误 Error while handling action event Trace
  • 删除行和 ValueError 数组的长度不同

    我的数据框在每个类别下都有子类别 cat dog bird 显示统计信息 如果行包含信息 我需要删除它们count and freq 并且只保留行sd and mean价值观 一些值是NaN ValueError出现在我的代码中 df va
  • 使用 Celery 创建动态队列

    这是我的场景 当用户登录我的网站时 我会为给定用户排队一堆任务 通常每个任务需要 100 毫秒 每个用户有 100 多个任务 这些任务排队到默认的 Celery 队列中 并且我有数百个工作线程正在运行 当任务在后端完成时 我使用 webso
  • Celery 使连接由对等方重置

    我设置了rabbitmqserver并使用以下步骤添加了用户 uruddarraju usr lib rabbitmq lib rabbitmq server 3 2 3 sudo rabbitmqctl list users Listin
  • Celery 与rabbitmq 创建结果多个队列

    我已经用 RabbitMQ 安装了 Celery 问题是 对于返回的每个结果 Celery 都会在 Rabbit 中创建队列 并在交换 celeryresults 中使用任务 ID 我仍然想得到结果 但在一个队列上 我的芹菜配置 from
  • django redis celery 和 celerybeats 的正确设置

    我一直在尝试设置 django celery redis celery beats 但它给我带来了麻烦 文档非常简单 但是当我运行 django 服务器 redis celery 和 celerybeats 时 没有打印或记录任何内容 我所
  • Django:djcelery 从 celery import current_app as celery in virtualenv 导入错误

    好吧 我已经尝试了我和谷歌能想到的一切 我正在尝试在 Macbook Pro OSX 10 8 4 上的 virtualenv 下运行 django celery 我在激活 virtualenv 时使用 pip 安装了 django cel

随机推荐

  • 【NetWorkX实例(3)】图、边、节点等相关方法

    更全面的NetworkX中文使用手册 xff0c 请收藏 xff1a NetworkX中文使用手册 在 NetWorkX实例 1 基础操作一文中 xff0c 介绍了networkx中图的生成 xff0c 下面就介绍一下图 边 节点等相关方法
  • Python调用外部EXE程序遍历窗体及控件并获取控件信息。

    背景 我的工作中经常手工运行一个windows程序 xff08 密码生成工具 xff09 xff0c 获取该程序的计算结果 xff0c 手工填到登录表单的中 该程序非常久远 xff0c 已无人维护 根据凡是重复2次以上的工作都应该自动化原则
  • J-Link RTT Viewer使用教程(附代码)

    目录 RTT Real Time Transfer 简介 使用教程 常用API介绍 RTT缓冲大小修改 使用printf重定向 官方例程 RTT Real Time Transfer 简介 平常调试代码中使用串口打印log xff0c 往往
  • [问题记录]JNI的整型数组返回出现stack corruption

    问题记录 JNI的整型数组返回出现stack corruption 在项目中编写了一个返回整型数组的JNI代码 xff0c 但是在测试时发现问题 xff0c 会产生stack corruption错误 xff0c debug之后发现是ret
  • Android逆向系列--JDWP协议

    Android逆向系列 JDWP协议 背景简介使用源码调用参考 背景 经常会遇到各种各样需要使用jdwp知识的场景 xff0c 比如调试Java源码 比如抓帧等等 xff0c 这些关联知识点通常都会极其复杂 xff0c 如果不能很好的了解j
  • 银河麒麟V10桌面版系统将用户开发Qt界面程序添加为开机自启动

    银河麒麟V10桌面版系统将用户开发Qt界面程序添加为开机自启动 银河麒麟V10桌面版系统允许用户开发自己的qt界面程序并将其添加为开机自启动 这样 xff0c 每次开机后 xff0c 用户开发的qt界面程序会自动启动 xff0c 无需手动打
  • 环境搭建-Linux-Mysql安装-10.3.7-MariaDB-log MariaDB Server

    10 3 7 MariaDB log MariaDB Server 安装记录 linux 系统 CentOS7 无脑安装 sudo yum install y redhat lsbsudo yum install y net tools关闭
  • 200506--iOS之NSAttributedString类

    Class NSAttributedString A string that has associated attributes such as visual style hyperlinks or accessibility data f
  • 批处理文件(bat)之全彩滚动我爱你

    前言 xff1a 本文章分享利用bat文件制作炫彩的全屏滚动文字效果 xff0c 具体效果可关注我的抖音 xff0c 查看短视频介绍 代码实现 xff1a 64 echo off amp setlocal enabledelayedexpa
  • @Bean放入其引用Bean中初始化失败分析

    以下讨论的问题及术语均在SpringBoot框架下 xff0c 问题十分小众 xff0c 仅做整理记录 1 先说重点 Bean依赖属性的注入顺序 xff0c 与代码定义顺序无关 xff1b 最好是将 64 Bean注解配置的Bean放在 6
  • 使用BeanCopier抛出NullPointerException溯源

    问题 使用cglib提供的net sf cglib beans BeanCopier进行对象拷贝时 xff0c 抛出如下异常 xff1a Exception in thread span class token string 34 main
  • 自制Alfred/Wox插件推荐

    最近上手Alfred的使用 xff0c 日常工作中存在很多需要高频执行的连续性动作 xff0c 将这一系列动作封装成Workflow xff0c 通过命令触发 xff0c 对提升效率确有很大帮助 自己封装了一些简单的Workflow xff
  • Python删除某一目录下的空文件(夹)

    Python删除某一目录下的空文件 夹 用途 输入文件夹路径 xff0c 将此文件夹下所有的空文件夹和空文件删除 xff0c 算是文件操作的一个习作吧 我拿它做什么就不广而告之了 代码 span class hljs comment cod
  • Win10下pip的安装

    pip简介 pip 是一个安装和管理 Python 包的工具 xff0c 通过pip我们能够轻松地下载和卸载python的第三方包 原料 64位Windows10 专业版python 2 7 12 下载安装包 进入python官方网站 xf
  • Windows10通过一根网线进行远程桌面连接

    目的 xff1a 想要通过笔记本访问我台式机 给台式机设置IP地址 xff1a IP xff1a 192 168 0 2 子网掩码 xff1a 255 255 255 0 默认网关 xff1a 192 168 0 2 给笔记本设置ip地址
  • Python爬虫爬取动态页面思路+实例(一)

    简介 有时候 xff0c 我们天真无邪的使用urllib库或Scrapy下载HTML网页时会发现 xff0c 我们要提取的网页元素并不在我们下载到的HTML之中 xff0c 尽管它们在浏览器里看起来唾手可得 这说明我们想要的元素是在我们的某
  • zerorpc-python官方入门

    原文地址 xff1a http www zerorpc io 一个易于使用的 xff0c 直观的 xff0c 跨语言的RPC zerorpc是一个在服务端进程上提供分布式通信的轻量级的 可靠的跨语言的库 它基于ZeroMQ和MessageP
  • Python保存json文件并格式化

    背景 最近自己搞些小东西 xff0c 需要用json文件存储些文件属性什么的 xff0c 但是发现用json包里的json dump 方法存json文件的效果好丑 xff08 其实是没仔细看方法 xff09 于是上网找了一份格式化json文
  • No module named 'django.templates'起因和解决

    当我跟着django官网上的教程写到template模板这一部分的时候 xff0c 出现了上述问题 span class hljs constant No span span class hljs class span class hljs
  • Celery ValueError: not enough values to unpack (expected 3, got 0)的解决方案

    背景 最近因项目需要 xff0c 学习任务队列Celery的用法 xff0c 跟着官网写Demo xff0c 出现如题错误 xff0c 最终在github的Issues里找到解决办法 xff0c 记录如下 场景还原 本地环境如下 xff1a