简介
Celery 是一个用 Python 编写的异步的任务调度模块,它有着简明的 API,并且有丰富的扩展性,适合用于构建分布式的 Web
服务。Celery 的工作流程很简单,你可以给Celery提交一个任务,然后 Celery 会将任务放入消息队列 broker 中,后台启动的多
个 worker 并行的对任务进行执行,最后可以选择将执行结果写入 store 中。
一个简单的示例
Celery 支持多种中间人作为消息队列,包括 RabbitMQ,Redis,数据库,Amazon SQS 等等,但是官方推荐 RabbitMQ 和Redis,这里我选择了 Redis 作为示例。所以需要提前安装 Celery 和 Redis,官方提供了一种简单的安装方法,可以同时安Celery 和 Redis 相关的依赖,以及安装 Redis,然后把 Redis 运行起来。
>>> sudo pip install -U "celery[redis]"
>>> sudo apt-get install redis-server
>>> sudo redis-server
在使用 Celery 的过程中主要的步骤是 (1)定义一个应用,并在应用上注册任务;(2)启动 worker,通过消息队列等待任务; (3)通过在程序里调用预先注册的任务给 Celery 提交一个任务。
tasks.py 包含了一个简单的示例,主要进行了任务的注册,首先创建了一个 Celery 实例 app,这是 Celery 里的一个应用(