1.celery的介绍及安装命令
2.celery的应用场景及工作原理
3.在flask中使用celery异步队列
4.celery的启动命令
1.celery的基本介绍和安装命令
celery的安装命令:pip install celery
Celery 是一个 基于python的分布式异步任务队列,通过它可以轻松的实现任务的异步处理
2.celery的应用场景和工作原理
应用场景:
1.异步任务:将==耗时==的操作任务提交给Celery异步执行,比如发送短信/邮件、消息推送、音频处理等等
2.做一个定时任务,比如每天定时执行爬虫爬取指定内容
3.还可以使用celery实现简单的分布式爬虫系统等等
工作原理:
celery一共有五大核心:task(任务)、broker(中间件)、worker(执行任务)、beat(定时任务调度器)、backend(保存任务的执行结果)。其工作原理就是 把一个任务或者是定时任务通过定时任务调度器交给broker中间件,由它来分配任务给多个worker进行执行,执行的任务结果统一保存到backend中
#接收和发送任务
BROKER_URL="redis://127.0.0.1:6379/1"
#存储任务结果
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/2'
#设置时间参照
CELERY_TIMEZONE = 'Asia/Shanghai'
3.在flask中是用celery发送短信验证码
config.py里面只要是celery的配置信息
#接收和发送任务
BROKER_URL="redis://127.0.0.1:6379/1"
#存储任务结果
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/2'
#设置时间参照
CELERY_TIMEZONE = 'Asia/Shanghai'
main.py主入口文件
from celery import Celery
#创建celery应用
celery_app = Celery('Home')
#加载配置文件
celery_app.config_from_object("tasks.config")
#自动发现任务
celery_app.autodiscover_tasks(['tasks.sms'])
task.py主要是执行任务,我这里是用了celery异步任务队列发了一个短信验证
from tasks.main import celery_app
from ronglian_sms_sdk import SmsSDK
accid = '8aaf07087f77bf96017fde92f64e355c'
authtoken = '837b4695750245e2b41246eb8aeaf0ee'
appid = '8aaf07087f77bf96017fde92f74e3563'
#执行任务
@celery_app.task
def sms_code(code, mobile,expire=5):
sdk = SmsSDK(accid,authtoken,appid)
# 准备数据
tid = "1"
datas = ("%s"%code,"%s"%expire)
#发送请求
res = sdk.sendMessage(tid=tid,mobile=mobile,datas=datas)
return res
4.celery的启动命令
celery - A 任务名 woker -l info
那么我这里的启动命令应该是 celery -A tasks.sms.task woker -l info
到这里就结束了,此文章仅限作者理解,如有错误欢迎评论指导
版权归原作者 铁甲战士张益达 所有, 如有侵权,请联系我们删除。