Celery
1|0Celery简介
1|1Celery是什么
- Celery是python中使用比较多的并行分布式框架
- Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统
- Celery专注于实时处理的异步任务队列
- Celery同时也支持任务调
1|2Celery使用场景
celery是一个强大的分布式任务队列的异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行。我们通常使用它来实现异步任务(async task)
和定时任务(crontab)
- 异步任务: 将耗时操作任务提交给Celery去异步执行,比如发送短信/邮件、消息推送、音视频处理等等
- 定时任务: 定时执行某件事情,比如每天数据统计
1|3Celery工作流程
1|4Celery核心组件
Celery的架构由三部分组成,消息中间件(Broker),任务执行单元(Worker)和任务执行结果存储(Result)组成。
消息中间件(Broker)
Broker负责创建任务队列,根据一些路由规则将任务分派到任务队列,然后将任务从任务队列交付给worker任务执行单元(Worker)
Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中,运行后台作业的进程任务结果存储(Result)
Result用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, Redis等
另外
: Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis等等
其他
: Celery还支持不同的并发、序列化和压缩的手段
- 并发:prefork、eventlet、gevent、threads
- 序列化:pickle、json、yaml、msgpack 等
- 压缩:zlib,、bzip2
2|0Celery安装相关软件
备注:我是在windows10环境下做的,Linux应该大同小异
2|1Celery安装
2|2其他安装
这里有个坑.win10系统启动worker报错ValueError: not enough values to unpack (expected 3, got 0),解决办法:
Django中使用的时候,报错 AttributeError: ‘str’ object has no attribute ‘items’。redis版本太高,降低版本 pip install redis==2.10.6
3|0Celery代码实现
3|1Celery基本使用方法
备注:在这里,我使用的是redis作为消息中间件
目录结构
代码实现
终端启动服务
- A :参数指定celery对象的位置
- l :参数指定worker的日志级别
服务启动后的展示
运行代码,app.py
备注:不要运行task.py,会报错
这个时候可以看终端,看看请求
检验这个id的值
__EOF__

本文作者:😎
本文链接:https://www.cnblogs.com/dongye95/p/15204258.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/dongye95/p/15204258.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!