celery

celery,处理任务的Python的模块 对任务进行分发和处理#

 

 

 

场景1:#

对【耗时的任务】,通过celery,将任务添加到broker(队列),然后立即给用户返回一个任务ID。
当任务添加到broker之后,由worker去broker获取任务并处理任务。
任务弯完成之后,再将结果放到backend中

用户想要检查结果,提供任务ID,我们就可以去backend中去帮他查找。

场景2:#

定时任务(定时发布/定时拍卖)

#################################################

环境搭建#

安装celery#

pip install celery

在安装broker ----redis或者rabbitMQ

安装redis#

pip istall redis
pip instal pika # 专门操作rabbitMQ

快速开始#

复制代码
from celery import Celery

task = Celery('task', broker="redis://192.168.56.131:6379/1",backend="redis://192.168.56.131:6379/2")


@task.task
def myfun1(x,y):
    return x+y


@task.task
def myfun2():
    return 'func2'


@task.task
def myfun3():
    return 'func3'
s1.py
复制代码
复制代码
from s1 import myfun1, myfun2, myfun3

res = myfun1.delay()

print(res.id)        # 任务id                # c4ac3a7e-870c-418a-a7a7-f8d3ae06cf9f
s2.py
复制代码
复制代码
from celery.result import AsyncResult
from s1 import task
res=AsyncResult(id='c4ac3a7e-870c-418a-a7a7-f8d3ae06cf9f', app=task)

print(res.ready())        # True
print(res.successful())   # True
print(res.get())          # func1
s3.py
复制代码

运行程序步骤

  1. 启动redis

  2. 启动worker

  

先安装 pip install eventlet
再启动 celery worker -A s1 -l info -P eventlet

 

# 进入目录
celery worker -A s1 -l info    

# -l是日志【代码上线就不加了】

在window上会报一个错

先安装 pip install eventlet
再启动 celery worker -A s1 -l info -P eventlet

  3. 创建代码

python3 s2.py

  4. 查看任务状态

python3 s3.py

 

posted @   流年中渲染了微笑  阅读(169)  评论(2编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2019-03-16 (二十四)微信小程序支付
点击右上角即可分享
微信分享提示
CONTENTS