什么是 Celery?

Celery 是一个基于 Python 的 分布式任务队列 框架,专门用于执行异步任务定时任务
它允许你把一些耗时的操作(如发送邮件、处理图片、调用外部API)丢到后台去执行,而不阻塞主应用流程。

核心思想

Celery 的基本工作流:

Producer(生产者) → 消息中间件(Broker) → Worker(工作者) → 结果存储(可选)

你应用中提交任务后,这个任务会被送到 Broker(如 Redis),Worker 监听这个队列并取出任务执行,结果可以保存在结果后端(如数据库、Redis、RabbitMQ)

核心组件

组件 作用
Task(任务) 定义你要异步执行的代码函数
Broker(消息中间件) 用来传递任务消息,常用 Redis、RabbitMQ
Worker(工作进程) 实际执行任务的后台服务
Result Backend(可选) 用来保存任务结果,例如 Redis、数据库
Beat(可选) Celery 的定时任务调度器

Celery 使用流程

1、安装

pip install celery redis

2、创建 Celery 实例

from celery import Celery

celery_app = Celery(‘myapp’,
broker=’redis://localhost:6379/0′,
backend=’redis://localhost:6379/1′) # 可选,用于保存结果

celery_app.conf.timezone = ‘Asia/Shanghai’

3、定义任务(如 tasks.py)

from .celery_app import celery_app

@celery_app.task
def add(x, y):
return x + y

4、运行 worker

celery -A celery_app worker –loglevel=info

5、发送任务

from tasks import add

result = add.delay(2, 3) # 异步提交任务
print(result.get()) # 阻塞获取结果(需要配置 backend)

作者 admin

百度广告效果展示