celery编程--supervisor监控

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值