celery是一个基于python的分布式消息传输的异步任务队列,分布式决定了可以有n个woker存在,队列表示其是异步操作的表现形式。
组件介绍
producer:任务生产者。调用 celery api , 函数或者装饰器, 而产生任务并交给任务队列处理的都是任务生产者。主要由web应用发布异步任务。
celery beat:任务调度器。读取配置文件内容,周期性地将配置中到期需要执行的任务发送给任务队列。主要发布定时任务。
broker:中间件(消息代理)。接受任务消息,存进队列再按顺序分发。通过第三方消息队列管理工具(rabbitmq、redis)完成服务器之间的通信。
celery worker:任务执行者。监听消息队列,从broker中拉取任务,分配给子进程执行。通常会在多台服务器运行多个消费者来提高执行效率。
result backend:任务结果存储,任务处理完后保存状态信息和结果,以供查询。