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将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J