小陆同学

python 中文名:蟒蛇,设计者:Guido van Rossum

导航

celery生产者-消费者

Celery是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具。

它是一个任务队列,专注于实时处理,同时还支持任务调度。

celery解决了什么问题:

  • 示例一:用户发起request,并等待response返回。在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间,造成不好的用户体验
  • 示例二:网站每小时需要同步一次天气预报信息,但是http是请求触发的,难道要一小时请求一次吗?

celery作用:处理异步任务,定时任务

celery组件:

productor:web应用或定时任务

celery Beat:任务调度器,周期性的将配置中到期需要执行的任务发送给任务队列,心跳反应

celery worker:执行任务的消费者,通常会在多态服务器运行多个消费者,提高运行效率

broker:消息队列常用:redis或rabbitmq  存放任务

backend:任务处理完成之后保存状态信息和结果,以供查询

 

组件之间交互过程:

productor将任务发送给broker,worker不停的去broker里取任务,执行完任务存放到backend。生产者通过taskID到backend里拿结果

 

posted on 2019-07-17 17:01  小陆同学  阅读(699)  评论(1编辑  收藏  举报