文章目录
一、celery跑起来!
组件安装
主角 : celery
配角 : redis 或者 rabbitmq
linux:
pip install reids celery
windows
pip install redis eventlet
注意 :
windows上使用celery,bug很多,慎用!
启动celery时,记得后面加上 -P eventlet
比如 : celery worker -A app1 -c 16 -P eventlet
架构图:如下所示
-
user 就是用户的控制代码。(比如下面你的app.py)
-
borker 是中间件,可以使用 redis 或者 rabbitmq.
-
workers 就是 执行具体任务的代码。 (比如下面的 tasks.py)
-
backend 是结果存储的地方, 支持很多存储方式,常见的是 支持sqlalchemy的数据库、redis等。

使用步骤
1 配置broker 和 backend
broker只支持 redis, rabbitmq。
broker = 'redis://localhost:6379/1'
backend 可以使用很多,比如支持sqlalchemy的数据库,redis也行。
backend = 'redis://localhost:6379/2'
result_backend = 'db+sqlite:///results.sqlite'
result_backend = 'db+mysql://scott:tiger@localhost/foo'
result_backend = 'db+postgresql://scott:tiger@localhost/mydatabase'
result_backend = 'db+oracle://scott:tiger@127.0.0.1:1521/sidname'
2 编写worker代码
tasks.py
import time
from celery import Celery
database = 'redis'
ip = '192.168.92.128'
port = '6379'
uri = f"{database}://{ip}:{port}/" + '{}'
# redis 2号 数据库是 接受任务队列
broker = uri.format(2)
# redis 3号 数据库是 存储执行结果队列
backend = uri.format(3)
app = Celery('my_task', broker=broker, backend=backend)
@app.task
def add(x, y)
Celery编程与Supervisor监控全解析

本文详细介绍了如何使用Celery进行任务调度,包括组件安装、配置broker和backend、启动worker以及编写应用代码。同时,文章讨论了通过配置文件管理Celery应用,设置定时任务,以及使用flower进行监控。最后,文章阐述了如何利用Supervisor来管理Celery进程,包括启动、Web控制和配置文件的修改。
最低0.47元/天 解锁文章
1088

被折叠的 条评论
为什么被折叠?



