B站资源: https://www.bilibili.com/vi...
Celery 是一个强大的异步任务队列/作业队列,基于分布式消息传递,主要用于在 Python 应用程序中执行异步任务。它支持任务调度、任务持久化、工作执行、任务结果跟踪和监控。
安装 Celery
首先,确保你的环境中安装了 Celery。你可以通过 pip 来安装:
pip install celery 基本概念
Broker:消息代理,如 RabbitMQ, Redis, 或其他消息队列服务。Celery 通过这个代理来传递任务消息。
Backend:用于存储任务结果的存储系统,如 Redis, Database, 或其他。
Worker:运行在后台的进程,负责执行任务。
示例
首先,你需要设置一个消息代理和结果后端。这里以 Redis 为例:
pip install redis
然后,配置你的 Celery 实例:
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')
在 Celery 中,任务是通过装饰器 @app.task 定义的:
@app.task def add(x, y): return x + y
在命令行中启动 worker:
celery -A your_project worker --loglevel=info
将 your_project 替换为包含你的 Celery 实例的文件或模块名。
在另一个 Python 脚本或你的应用中,你可以这样调用任务:
result = add.delay(4, 4) # 使用 .delay() 来异步调用任务 print('Task result:', result.get(timeout=1)) # 获取结果,可以设置超时时间 异步与同步调用
异步调用:使用 .delay() 方法,它会立即返回一个 AsyncResult 对象,你可以稍后获取结果。
同步调用:使用 .apply() 方法,它会阻塞直到任务完成并返回结果。
监控与扩展
Celery 提供了丰富的监控和扩展功能,如 Flower(一个 Celery 的 web 监控工具)和 Celery Beat(用于定期执行任务的工具)。你可以通过以下方式安装并运行 Flower:
pip install flower celery -A your_project flower
然后访问 http://localhost:5555 查看监控界面。
通过以上步骤,你可以在 Python 应用中实现强大的异步任务处理能力。
B站资源: https://www.bilibili.com/vi...
Celery 是一个强大的异步任务队列/作业队列,基于分布式消息传递,主要用于在 Python 应用程序中执行异步任务。它支持任务调度、任务持久化、工作执行、任务结果跟踪和监控。
安装 Celery
首先,确保你的环境中安装了 Celery。你可以通过 pip 来安装:
pip install celery
基本概念
Broker:消息代理,如 RabbitMQ, Redis, 或其他消息队列服务。Celery 通过这个代理来传递任务消息。
Backend:用于存储任务结果的存储系统,如 Redis, Database, 或其他。
Worker:运行在后台的进程,负责执行任务。
示例
首先,你需要设置一个消息代理和结果后端。这里以 Redis 为例:
pip install redis
然后,配置你的 Celery 实例:
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')
在 Celery 中,任务是通过装饰器 @app.task 定义的:
@app.task
def add(x, y):
return x + y
在命令行中启动 worker:
celery -A your_project worker --loglevel=info
将 your_project 替换为包含你的 Celery 实例的文件或模块名。
在另一个 Python 脚本或你的应用中,你可以这样调用任务:
result = add.delay(4, 4) # 使用 .delay() 来异步调用任务
print('Task result:', result.get(timeout=1)) # 获取结果,可以设置超时时间
异步与同步调用
异步调用:使用 .delay() 方法,它会立即返回一个 AsyncResult 对象,你可以稍后获取结果。
同步调用:使用 .apply() 方法,它会阻塞直到任务完成并返回结果。
监控与扩展
Celery 提供了丰富的监控和扩展功能,如 Flower(一个 Celery 的 web 监控工具)和 Celery Beat(用于定期执行任务的工具)。你可以通过以下方式安装并运行 Flower:
pip install flower
celery -A your_project flower
然后访问 http://localhost:5555 查看监控界面。
通过以上步骤,你可以在 Python 应用中实现强大的异步任务处理能力。