没有合适的资源?快使用搜索试试~ 我知道了~
python教程:python基于celery实现异步任务周期任务定时任务
0 下载量 75 浏览量
2021-01-21
17:06:46
上传
评论
收藏 157KB PDF 举报
温馨提示
这篇文章主要介绍了python基于celery实现异步任务周期任务定时任务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hello, 小伙伴们, 好久不更新了,这一次带来的是celery在python中的应用以及设置异步任务周期任务和定时任务的步骤,希望能给入坑的你带来些许帮助. 首先是对celery的介绍,Celery其实是一个专注于实时处理和调度任务的分布式任务队列,同时提供操作和维护分布式系统所需要的全部数据, 因此可以用它提供的接口快速实现并管理一个分布式的任务队列,它本身不是任务队列,它是封装了操作常见任务队列的各种操作, 可以使
资源推荐
资源详情
资源评论



























python教程:教程:python基于基于celery实现异步任务周期任务定时任务实现异步任务周期任务定时任务
这篇文章主要介绍了python基于celery实现异步任务周期任务定时任务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定
的参考学习价值,需要的朋友可以参考下
hello, 小伙伴们, 好久不更新了,这一次带来的是celery在python中的应用以及设置异步任务周期任务和定时任务的步骤,希望能给入坑的你带来
些许帮助.
首先是对celery的介绍,Celery其实是一个专注于实时处理和调度任务的分布式任务队列,同时提供操作和维护分布式系统所需要的全部数据,
因此可以用它提供的接口快速实现并管理一个分布式的任务队列,它本身不是任务队列,它是封装了操作常见任务队列的各种操作, 可以使用它
快速进行任务队列的使用与管理.在Python中的组成部分是 1.用户任务 app 2.管道 broker 用于存储任务 官方推荐的是 redis rabbitMQ /
backend 用于存储任务执行结果的 3, 员工 worker 大致流程入下:
最左边的是用户, 用户发起1个请求给服务器, 要服务器执行10个任务,将这10个任务分给10个调度器,即开启10个线程进行任务处理,worker会
一直监听调度器是否有任务, 一旦发现有新的任务, 就会立即执行新任务,一旦执行完就会返回给调度器, 即backend, backend会将请求发送给
服务器, 服务器将结果返回给用户, 表现的结果就是,这10个任务同时完成,同时返回,这就是Celery的整个工作流程, 其中的角色分别为,任务
(app_work), 调度器(broker + backend), 将任务缓存的部分, 即将所有任务暂时存在的地方,相当于生产者, 消费者(worker 可以指定数量, 即在
创建worker命令的时候可以指定数量), 在worker拿到任务后,人就控制不了了, 除非把worker杀死, 不然肯定会执行完.
也即 任务来了以后, 调度器(broker)去缓存任务, worker去执行任务, 完成后返回backend,接着返回,
还有就是关于定时任务和周期任务在linux上为什么不用自身所带着的去做,是因为linux周期定时任务是不可控的, 不好管理, 返回值保存也是个
麻烦事, 而celery只要开启着调度器, 就可以随时把人物结果获取到,即使用celery控制起来是非常方便的.
接下来就是实例代码:
workers.py
from celery import Celery
import time
# 创建一个Celery实例, 就是用户的应用app 第一个参数是任务名称, 可以随意起 后面的就是配置的broker和backend
diaoduqi= Celery("mytask", broker="redis://127.0.0.1:6379", backend="redis:127.0.0.1:6379")
# 接下来是为应用创建任务 ab
@diaoduqi.task
def ab(a,b):
time.sleep(15)
return a+b
brokers.py
from worker import ab
# 将任务交给Celery的Worker执行
res = ab.delay(2,4)
#返回任务ID
print(res.id)
backends.py
from celery.result import AsyncResult
from worker import diaoduqi
# 异步获取任务返回值
async_task = AsyncResult(id="31ec65e8-3995-4ee1-b3a8-1528400afd5a",app=diaoduqi)
资源评论


weixin_38675970
- 粉丝: 5
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 中铁最成功的项目管理经验.doc
- 种系统工具的优化程序您不要在Windows上需要.pdf
- 数据库系统原理第七章答案.ppt
- 2022年上半年软件设计师考试上午模拟真题.docx
- 小区网络综合布线系统设计方案.doc
- 恢复Excel未保存文件的方法【会计实务操作教程】.pptx
- 基于硬盘方式的LINUX双系统安装操作系统课程实验报告.doc
- 从技术专家到管理者的关键转型
- 网络管理员述职报告.doc
- 企业项目管理新的解决方案.doc
- -嵌入式系统外围设备.pptx
- 科普知识网站设计与实现文献综述.docx
- 动态规划算法原理及应用样本.doc
- 基于单片机的热水器温度控制系统设计.doc
- 通信保障年度工作总结.docx
- 初中计算机教学年度个人工作总结.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
