Celery -----异步任务,定时任务,周期任务
1 什么是Celery?
Celery是芹菜
Celery是基于Python实现的模块,用于执行异步定时周期任务的
其结构的组成是由:
1 用户任务 app
2 管道broker用于存储任务 官方推荐redis rabbitMQ / backend 用于存储任务执行结果的
3 员工 worker
2 Celery的简单实例
s1.py 这是APP
1 2 3 4 5 6 7 8 9 10 11 12 13 | #首先先下载好celery from celery import Celery import time #创建一个Celery实例,这就是我们用户的应用app my_task = Celery( "tasks" , broker = "redis://127.0.0.1:6379" , backend = "redis://127.0.0.1:6379" ) # 为应用创建任务,func1 @my_task .task def func1(x, y): time.sleep( 15 ) return x + y |
s2.py 这是borker
1 2 3 4 5 6 7 | from s1 import func1 # 将任务交给Celery的Worker执行 res = func1.delay( 2 , 4 ) #返回任务ID print (res. id ) |
s3.py 这是worker
1 2 3 4 5 6 7 8 9 10 11 12 13 | from celery.result import AsyncResult from s1 import my_task # 异步获取任务返回值 async_task = AsyncResult( id = "31ec65e8-3995-4ee1-b3a8-1528400afd5a" ,app = my_task) # 判断异步任务是否执行成功 if async_task.successful(): #获取异步任务的返回值 result = async_task.get() print (result) else : print ( "任务还未执行完成" ) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步