celery介绍和安装与快速使用
Posted 好耶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了celery介绍和安装与快速使用相关的知识,希望对你有一定的参考价值。
celery介绍和安装与快速使用
celery介绍和安装
celery 介绍
框架:服务python框架,跟django无关
-能做什么
- 异步任务
-定时任务
-延迟任务
celery的原理
1 可以不依赖于任何服务器,通过自身命令启动服务
2 celery服务为其他项目服务提供异步解决任务需求
3 #会有两个服务同时运行,一个是项目服务,一个是celery服务,项目服务将需要异步处理的任务交给celery服务,celery就会在需要时异步完成项目的需求
celery框架(Broker,bacjed,都使用redis)
1 任务中间件Broker(中间件),其他服务提交异步任务,放在里面排队
2 任务执行单元worker,是执行异步任务的就进程
3 结果存储 backed,结果存储函数的返回结果,保存到backed中
celery使用场景
异步任务
延迟任务
定时任务
#celery 不支持win,通过eventlet支持在win上运行
celery快速使用
安装
pip install celery
win:pip install eventlet
快速使用
-新建一个py文件
from celery import Celery
# 提交的异步任务,放在里面
broker = \'redis://127.0.0.1:6379/1\'
# 执行完的结果,放在这里
backend = \'redis://127.0.0.1:6379/2\'
app = Celery(\'test\', broker=broker, backend=backend)
@app.task
def add(a, b):
import time
time.sleep(3)
print(\'------\',a + b)
return a + b
-其他程序提交任务
res = add.delay(5,6) #原来add的参数,直接放在delay中传入即可
print(res) # f150d8a5-c955-478d-9343-f3b60d0d5bdb
-启动worker
# 启动worker命令,win需要安装eventlet
win:
-4.x之前版本
celery worker -A main -l info -P eventlet
-4.x之后
celery -A main worker -l info -P eventlet
mac:
celery -A main worker -l info
-worker会执行中间件中的任务,把结果保存起来
-查看执行结果
from 文件名 import app
from celery.result import AsyncResult
id=""
if __name__=="__main__":
a=AsycResult(id=id,app=app)
if a.successful(): # 执行完了
result = a.get() #
print(result)
elif a.failed():
print(\'任务失败\')
elif a.status == \'PENDING\':
print(\'任务等待中被执行\')
elif a.status == \'RETRY\':
print(\'任务异常后正在重试\')
elif a.status == \'STARTED\':
print(\'任务已经开始被执行\')
以上是关于celery介绍和安装与快速使用的主要内容,如果未能解决你的问题,请参考以下文章