Flask中的celery使用

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发送短信验证码

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

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

Original: https://blog.csdn.net/m0_67427514/article/details/125164878
Author: 铁甲战士张益达
Title: Flask中的celery使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/744449/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球