在flask中使用celery执行异步任务发送短信,redis作为broker

本文介绍了在Windows环境下,使用Flask集成Celery执行异步任务发送短信的过程,遇到的配置问题及解决方法。包括Broker设置、版本兼容性、错误调试等。最终通过安装`celery[redis]`并指定worker池为eventlet成功运行异步任务,但在实际短信发送中出现延迟问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说起这个celery简直就是个大坑,Django中用的时候害我搞了一个星期,虽然是边玩边搞的,但是不妨碍我这么评价他,flask的时候又让我搞了差不多一天

我写的python项目都是在windows7上写的,使用的包也都是最新的,没有什么降版本直说,那些说celery4.0以后都不支持在windows上用的人我不知道依据是什么

我的celery是4.2.1版本的,python是3.7最新版本的,redis是2.10.6版本的,之前写Django项目的时候降的,因为3.1版本的和celery4.0以后的不兼容,有用Django遇到错误的可以看 我的另一篇文章https://blog.youkuaiyun.com/qq_20681909/article/details/84848137

 

这里就说说我在flask中遇到的坑吧,本来很简单的用法就是,但是在我的项目中就是那么多事

新建一个tasks.py文件

from celery import Celery
from ihome.libs.yuntongxun.sms import CCP

#定义celery对象
# celery_app=Celery("ihome",broker="redis;//127.0.0.1:6379/1")      #最初的写法   

celery_app=Celery("ihome")      #    后来改的
celery_app.conf.broker_url = 'redis://127.0.0.1:6379/1'

@celery_app.task
def send_sms(mobile,datas,temp_id):
    print("进入任务")
    ccp=CCP()
    #由于有效期是分钟,所以需要把秒转换为分钟
    result=ccp.sendTemplateSMS(mobile,datas,temp_id)
    if result==0:
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值