python之celery简介
1、 技术分享: 角色: 任务模块 (生产商,仓库发货员) Broker (快递员) 队列/MQ (菜鸟驿站) Worker (驿站工作人员,个人) 通过一周定时任务的开发及学习,celery有三大模块 (可以通过快递员,菜鸟驿站,个人等角色的角度来理解) A、任务模块: Celery包含异步任务和定时任务,异步任务一半在业务逻辑中触发(目前测试平台前端点击项目运行,就会触发后端异步任务,每个项目下的父用例就是一个待执行的任务,将待执 行的任务存入MQ队列中,等待work执行),而定时任务时由我们通过celery 提供的beat命令,将任务推至MQ队列中,等待work执行。 通俗点理解:beat可以理解为仓库发货员,打个电话给快递员(Broker)说,我这边有货(任务)要寄到某个驿站(队列) B、消息中间件 Broker: Broker即为任务调度队列,但是本身又部提供队列。 通俗理解:Broker可以理解为快递员,而队列就可以理解为菜鸟驿站了,而Broker这个快递员只负责将快递运送到驿站,却不负责从驿站取货。 C、任务执行单元 Worker: Worker是任务执行单元,它会实时监控消息队列,获取队列中的调度任务,并执行它 通俗理解:Worker可以理解为驿站工作人员和我们个人,驿站工作人员实时监控有没有快递送到驿站,若是有会获取快递中的号码,发个信息或者打个电话给到个人,而个人去驿站取到快递并拆开快递,就相当于work执行了一个任务 备注:celery不提供任务队列的存储,可以采取MQ,Redis来存储队列中的任务。
|