celery 框架

celery 是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。

Producer: 调用了celery提供的API,函数或者装饰器而产生任务并交给 任务队列处理的都是任务生产者。

celery beat: 任务调度器,Beat进程会读取配置文件的内容,周期性地将配置中到期需要执行的任务发送给任务队列。

Broker:消息代理,又称消息中间件,接受任务生产者发送过来的任务消息,存进队列再按序分发给任务消费方。celery目前支持RabbitMQ, Redis, MongoDB, Beanstalk, SQLAlchemy, Zookeeper 等作为消息代理,但适用于生产环境的只有RabbitMQ 和 Redis, 官方推荐RabbitMQ

Celery Worker: 执行任务的消费者,通常会在多台服务器运行多个消费者来提高执行效率。

Result backend: 任务处理完后保存状态信息和结果,以供查询。Celery默认已支持Redis,RabbitMQ,MongoDB, Django ORM,SQLAlchemy 等方式。

工作原理:
它的基本工作就是管理分配任务到不同的服务器,并且取得结果。至于说服务器之间是如何通信的?这个celery本身不能解决。所以,RabbitMQ作为一个消息队列管理工具被引入到celery集成,负责处理服务器之间的通信任务。celery没有消息存储功能。他需要介质。比如RabbitMQ, Redis, MySQL, MongoDB都是可以的。

posted @ 2022-03-17 16:51  恰恰的故事  阅读(952)  评论(0编辑  收藏  举报