Celery 是 Python 中一个开源的分布式任务队列(task queue)系统,用于处理异步任务、后台作业和分布式消息处理。它允许开发者将耗时的操作从主应用流程中分离出来,实现高可用性和水平扩展。Celery 主要用于 Web 应用中,例如在 Django 或 Flask 项目中处理如发送邮件、生成报告或处理用户上传等需要延迟执行的任务。

Celery 的主要特点

  • 分布式和可扩展:支持多个 worker(工作者)和 broker(消息代理),如 RabbitMQ 或 Redis,用于消息传递和结果存储。这使得系统可以轻松扩展到多台服务器。
  • 异步任务处理:任务可以延迟执行、定时调度(通过 Celery Beat),或在后台运行,而不阻塞主线程。
  • 灵活性:支持多种后端存储结果(如数据库、Redis),并兼容多种编程语言的客户端,虽然核心是用 Python 实现的。
  • 易用性:安装简单,通过 pip 安装 celery 包即可开始。Celery 内置了许多工具来监控和管理任务。
  • 生产级功能:包括任务重试、优先级队列、任务组和链式执行等高级特性。

如何入门

  1. 安装:使用 pip 安装 Celery 和一个消息 broker,例如:

    pip install celery redis
    

    (Redis 作为 broker 的示例)。

  2. 基本配置:创建一个 celery.py 文件来初始化应用:

    from celery import Celery
    
    app = Celery('myapp', broker='redis://localhost:6379/0')
    
  3. 定义任务:在 tasks.py 中定义异步函数:

    from .celery import app
    
    @app.task
    def add(x, y):
        return x + y
    
  4. 运行:启动 worker:

    celery -A myapp worker --loglevel=info
    

    然后在代码中调用任务:add.delay(4, 4) 来异步执行。

Celery 常与 Django 等框架集成,用于处理真实世界的异步需求,如用户注册后的邮件发送。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐