Celery分布式任务队列入门(一)-理论

之前曾在公司的一个分布式爬虫项目中使用 CeleryRabbitMQ 实现过分布式爬虫的功能。最近在整理之前的开发笔记时,看到之前写的关于 Celery 的文章,决定趁着有时间再把关于Celery相关的内容好好的整理一番,没想到越写越想把相关的点都理清楚,也就有了这个Celery系列文章。

Celery 是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。它是一个专注于实时处理的任务队列,同时也支持任务调度。

主要模块

mark

任务模块 Task

包含异步任务和定时任务。其中,异步任务通常在业务逻辑中被触发并发往任务队列,而定时任务由 Celery Beat 进程周期性地将任务发往任务队列。

消息中间件 Broker

一个消息传输的中间件,可以理解为一个邮箱,作为消费者和生产者之间的桥梁。接收任务生产者发来的消息(即任务),将任务存入队列。Celery 本身不提供队列服务,官方推荐使用 RabbitMQ 和 Redis 等。

任务执行单元 Worker

Worker 是执行任务的处理单元,它实时监控消息队列,获取队列中调度的任务,并执行它。

任务结果存储 Backend

Backend 用于存储任务的执行结果,以供查询。同消息中间件一样,存储也可使用 RabbitMQ, RedisMongoDB 等。


系列文章目录

未完待续。。。

坚持原创技术分享,您的支持将鼓励我继续创作!
如有疑问或需要技术讨论,请发邮件到 service@itfanr.cc