栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Flask中的celery使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flask中的celery使用

1.celery的介绍及安装命令 2.celery的应用场景及工作原理 3.在flask中使用celery异步队列 4.celery的启动命令
1.celery的基本介绍和安装命令

celery的安装命令:npm 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 

到这里就结束了,此文章仅限作者理解,如有错误欢迎评论指导

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/953783.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号