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

在Windows 10环境下使用Celery 4.3.0时遇到`ValueError: not enough values to unpack (expected 3, got 0)`错误。解决方法是安装eventlet库,并在启动worker时添加特定参数,具体原因未明。" 132284628,19673928,使用SonarQube优化Objective-C iOS代码质量,"['iOS开发', 'Objective-C', '代码检查', 'SonarQube插件', '静态代码分析']
摘要由CSDN通过智能技术生成

最近学习任务队列Celery中,跟着视频写代码时候,出现如题错误,最终在不懈的百度,调试中终于找到解决办法。
首先视频里用的是Linux系统,我这里用的是windows系统,都是python3.6 django1.11.11 Celery 4.3.0

场景还原

本机环境:

  • windows 10
  • python 3.6
  • django 1.11.11
  • Celery 4.3.0

tasks.py

from django.core.mail import send_mail
from django.conf import settings
from celery_tasks.main import celery_app

import logging

logger = logging.getLogger('django')


@celery_app.task(bind=True, name='send_verify_email', retry_backoff=3)
def send_verify_email(self, to_email, verify_url):
    """
       发送验证邮箱邮件
       :param to_email: 收件人邮箱
       :param verify_url: 验证链接
       :return: None
       """
    subject = "*****"
    html_message = '<p>*************</p>' \
                   '<p>*************</p>' \
                   '<p>您的邮箱为:%s 。请点击此链接激活您的邮箱:</p>' \
                   '<p><a href="%s">%s<a></p>' % (to_email, verify_url, verify_url)
    try:
        send_mail(subject, "", settings.EMAIL_FROM, [to_email], html_message=html_message)
    except Exception as e:
        logger.error(e)
        # 有异常自动重试三次
        raise self.retry(exc=e, max_retries=3)

执行worker

celery -A celery_tasks.main worker -l info

输出:

 -------------- celery@gongjuren v4.3.0 (rhubarb)
---- **** -----
--- * ***  * 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值