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来存储队列中的任务。

 

 

原文地址:https://www.cnblogs.com/tar8087/p/13575844.html