173. Python语言 的 Flask框架项目 之 异步方案 Celery 第二章:Celery 介绍和使用

本文主要是介绍173. Python语言 的 Flask框架项目 之 异步方案 Celery 第二章:Celery 介绍和使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Celery介绍和使用

  • 本章主题
  • 关键词
  • 为什么需要 Celery
  • 结论
  • Celery介绍
  • Celery官方文档
  • 创建Celery实例并加载配置
    • celery_tasks.main.py
  • 加载Celery配置
    • celery_tasks.config.py
    • celery_tasks.main.py
  • 定义发送短信任务
    • 注册任务:celery_tasks.main.py
    • 定义任务:celery_tasks.sms.tasks.py
  • 启动Celery服务
  • 调用发送短信任务
  • 总结小便条

本章主题

  

关键词

  

为什么需要 Celery

  • 消费者取到消息之后,要消费掉(执行任务),需要我们去实现。
  • 任务可能出现高并发的情况,需要补充多任务的方式执行。
  • 耗时任务很多种,每种耗时任务编写的生产者和消费者代码有重复。
  • 取到的消息什么时候执行,以什么样的方式执行。

  

结论

  • 实际开发中,我们可以借助成熟的工具 Celery 来完成。
  • 有了 Celery ,我们在使用生产者消费者模式时,只需要关注任务本身,极大的简化了程序员的开发流程。

  

Celery介绍

  • Celery介绍:
    • 一个简单、灵活且可靠、处理大量消息的分布式系统,可以在一台或者多台机器上运行;
    • 单个 Celery 进程每分钟可处理数以百万计的任务;
    • 通过消息进行通信,使用 消息队列(broker)客户端消费者 之间进行协调。

  • 安装 Celery

$ pip install Celery

  

Celery官方文档

  
  Celery官方文档:https://docs.celeryproject.org/en/latest/index.html

  

创建Celery实例并加载配置

celery_tasks.main.py

# celery启动文件
from celery import Celery# 创建celery实例
celery_app = Celery('home')

  

加载Celery配置

celery_tasks.config.py

# 指定消息队列的位置
broker_url = "redis://127.0.0.1/10"

celery_tasks.main.py

# celery启动文件
from celery import Celery
# 创建celery实例
celery_app = Celery('home')
# 加载celery配置
celery_app.config_from_object('celery_tasks.config')

  

定义发送短信任务

注册任务:celery_tasks.main.py

# celery启动文件
from celery import Celery
# 创建celery实例
celery_app = Celery('home')
# 加载celery配置
celery_app.config_from_object('celery_tasks.config')
# 自动注册celery任务
celery_app.autodiscover_tasks(['celery_tasks.sms'])

定义任务:celery_tasks.sms.tasks.py

@celery_app.task
def send_sms(to, datas, temp_id):"""发送短信的异步任务"""ccp = CCP()try:result = ccp.send_message(to, datas, temp_id)except Exception as e:result = -2return result

  

启动Celery服务

celery -A home.tasks.task_sms worker -l info

-A 指对应的应用程序, 其参数是项目中 Celery 实例的位置;
worker 指这里要启动的 worker;
-l 指日志等级,比如 info 等级。

在这里插入图片描述

  

调用发送短信任务

# Celery异步发送短信验证码
send_sms.delay(mobile, [sms_code, int(constants.SMS_CODE_REDIS_EXPIRES / 60)]

  

总结小便条

本篇文章主要讲了以下几点内容:

  

  本章回顾暂时就到这了,如果还有点晕,那就把文章里所有引用的案例代码再敲几遍吧。拜拜~

这篇关于173. Python语言 的 Flask框架项目 之 异步方案 Celery 第二章:Celery 介绍和使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/548960

相关文章

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

Golang interface{}的具体使用

《Golanginterface{}的具体使用》interface{}是Go中可以表示任意类型的空接口,本文主要介绍了Golanginterface{}的具体使用,具有一定的参考价值,感兴趣的可以了... 目录一、什么是 interface{}?定义形China编程式:二、interface{} 有什么特别的?✅

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一

Spring 缓存在项目中的使用详解

《Spring缓存在项目中的使用详解》Spring缓存机制,Cache接口为缓存的组件规范定义,包扩缓存的各种操作(添加缓存、删除缓存、修改缓存等),本文给大家介绍Spring缓存在项目中的使用... 目录1.Spring 缓存机制介绍2.Spring 缓存用到的概念Ⅰ.两个接口Ⅱ.三个注解(方法层次)Ⅲ.

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

PyTorch中cdist和sum函数使用示例详解

《PyTorch中cdist和sum函数使用示例详解》torch.cdist是PyTorch中用于计算**两个张量之间的成对距离(pairwisedistance)**的函数,常用于点云处理、图神经网... 目录基本语法输出示例1. 简单的 2D 欧几里得距离2. 批量形式(3D Tensor)3. 使用不

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5