Celery的使用

news2024/11/13 11:44:46

Celery

  • 一、Celery概述
    • 1. 特点:
    • 2. celery组成
    • 3. 安装与使用
    • 4. 邮箱配置
  • 二、Celery的使用实操——发送邮件
    • 1. 安装
    • 2. 配置

一、Celery概述

在这里插入图片描述

1. 特点:

在这里插入图片描述

2. celery组成

在这里插入图片描述

  1. 配置任务队列Broker,采用redis保存要执行的任务队列

  2. Client:任务的发出者

  3. Worker:任务的处理者

3. 安装与使用

命令:pip install celery

4. 邮箱配置

登录QQ邮箱,点击账户开启邮箱服务

二、Celery的使用实操——发送邮件

1. 安装

在这里插入图片描述

2. 配置

  1. 配置任务队列Broker,采用redis保存要执行的任务队列,主要包含两部分:一部分是保存要执行的任务,一部分是保存执行的结果
    1)在主目录下创建一个名为celery_tasks的文件夹
    在这里插入图片描述
    2) 在该文件夹下创建一个名为celery_config.py的配置文件
    在这里插入图片描述
    3)在主目录的config下已经配置好了redis
    在这里插入图片描述
    4) 配置celery_config.py文件,连接redis数据库。其中broker_url和result_backend这两个变量名是固定写法
    在这里插入图片描述
    5) 创建一个任务的文件夹email,一个任务创建一个文件夹
    在这里插入图片描述

6)配置celery的入口文件,创建一个celery_main.py的文件
在这里插入图片描述
配置以下内容:
在这里插入图片描述

  1. 任务的处理者
    1) 在email文件夹下创建一个名为tasks.py的文件夹。注:tasks.py的文件名固定,不能修改,email的文件名可以自定义。

2) 在settings.py文件中设置邮箱的配置,以QQ邮箱举例。
在这里插入图片描述

在这里插入图片描述

在config文件夹下创建一个名为emailConfig.py的文件夹
在这里插入图片描述
配置内容如下:
在这里插入图片描述
3) 获取QQ邮箱的授权码
登录QQ邮箱——设置——常规——第三方服务——启动IMAP/SMTP服务——生成授权码,获取到授权码,将授权码配置到emailConfig.py中

4) 以上内容配置完后,在tasks.py文件中编写邮件发送的处理函数

import logging

from django.core.mail import send_mail

from celery_tasks.celery_main import app
from drf6 import settings

# 创建一个日志器,__name__表示传的是当前这个模块名即文件名
logger = logging.getLogger(__name__)

# celery_tasks.celery_main中创建的app,并设置任务名
@app.task(name='send_email_task') 
def send_email_task(email, username, password, classes_name):
    """
    通知邮件任务
    :param email: 收件人邮箱
    :param username: 用户名
    :param password: 密码
    :param cl

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2142312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从0-1 用AI做一个赚钱的小红书账号(不是广告不是广告)

大家好,我是胡广!是不是被标题吸引过来的呢?是不是觉得自己天赋异禀,肯定是那万中无一的赚钱天才。哈哈哈,我告诉你,你我皆是牛马,不要老想着突然就成功了,一夜暴富了,瞬…

信奥初赛解析:1.2-计算机系统的基本结构

目录 知识要点 一、概述 二、计算机硬件系统 (一)处理器 (二)存储器 (1)内存储器 (2)外存储器 ①固态硬盘存储器 ②机械硬盘存储器 ③闪存 (三)输入设备 (四)输出设备 (五)总线结构 (六)主要的性能指标 1.字长 2.运…

计算机毕业设计 网上书店系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

JVM OutOfMemoryError 与 StackOverflowError 异常

目录 前言 堆溢出 虚拟机栈和本地方法栈溢出 方法区溢出 前言 JVM规范中规定, 除了程序计数器之外, 其他的运行时数据区域, 例如堆栈, 方法区, 都会出现OutOfMemoryError异常. 那么到底是怎么样的代码, 才会引起堆溢出, 栈溢出, 或者是方法区的溢出呢? 如果遇到了又该如何…

书生大模型全链路开源体系,学习

优点 书生浦语开源大模型,是一个开源的大模型,大家可以一起学习 还有配套的教学视频,很快就能上手,而且还奖励算力,可以直接训练,讨论学习,非常nice。 教学视频 书生浦语大模型全链路开源开…

FastAPI与环境变量:实现无缝切换与高效运维

在现代软件开发中,尤其是构建RESTful API时,环境变量的管理显得尤为重要。它们不仅允许我们在不同环境中(如开发、测试、生产)灵活地调整应用的行为,还极大地增强了应用的安全性和可维护性。FastAPI作为一个新兴的、高…

ROS组合导航笔记1:融合传感器数据

使用机器人定位包(robot_localization package)来合并来自不同传感器的数据,以改进机器人定位时的姿态估计。 基本概念 在现实生活中操作机器人时,有时我们需要处理不够准确的传感器数据。如果我们想要实现机器人的高精度定位&am…

苍穹外卖 修改nginx的端口后websocket连接失败解决

苍穹外卖 修改nginx的端口后websocket连接失败解决 问题: 后端配置好websocket后前端仍显示如图所示的错误 解决: 先用websocket在线工具测试后端是否能正常连接(这个基本上不会出现问题)用f12观察前端发送的请求 正常来说这个请…

chatgpt个人版ssrf漏洞

文章目录 免责申明搜索语法漏洞描述漏洞复现修复建议 免责申明 本文章仅供学习与交流,请勿用于非法用途,均由使用者本人负责,文章作者不为此承担任何责任 搜索语法 fofa title"ChatGPT个人专用版"漏洞描述 该系统是一个开源的…

【两方演化博弈代码复现】:双方演化博弈的原理、概率博弈仿真、相位图、单个参数灵敏度演化

目录-基于MatLab2016b实现 一、演化博弈的原理1. 基本概念2. 参与者的策略3.演化过程 二、MATLAB 代码解读(博弈参与主体(双方)策略选择的动态演化讨程)三、MATLAB 代码解读(博弈主体随着时间策略选择的动态演化讨程&a…

若依nday复现

前言 声明:此文章仅做学习,未经授权严禁转载。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者无关 本文章只做简单汇总,在此感谢其他师傅的文章和分享 前置准备 环境搭建 下载:https:/…

访谈心脑血管名医黄力医生:医术精湛,心系患者

黄力医生,一位在心脑血管领域深耕多年的杰出医者,其医学之路同样始于对国内顶尖医学院校的刻苦钻研。在那里,她不仅打下了坚实的医学理论基础,更培养了对医学事业的无限热爱与崇高追求。毕业后,黄力医生毅然选择了心脑…

django-prometheus使用及源码分析

简介 在django服务运行过程中,希望可以对其获取promethues指标进行监控,这样可以实时知道其运行状态,当它运行异常时可以及时进行告警,并且帮助我们可以对其针对性进行优化。比如请求量过大是否要进行限流或者扩容,再…

【黄力医生】血栓隐患大排查:七类人群如何自我监测静脉血栓风险

血栓,这一看似无声无息的健康杀手,实则潜藏着巨大的风险。静脉血栓作为血栓的一种常见类型,其形成与多种因素密切相关,并可能引发严重的并发症,如肺栓塞等。黄力医生指出,有七类人群特别需要关注自身静脉血…

2024/9/16 dataloader、tensorboard、transform

一、pytorch两大法宝元素 假设有一个名为pytorch的包 dir():用于打开包,看里面的内容 help():用于查看具体的内容的用处 二、python文件,python控制台和jupyter的使用对比 三、pytorch读取数据 pytorch读取数据主要涉及到两个类&#xff1…

Redis——常用数据类型hash

目录 hash常用命令hsethgethdelhkeyshvalshgetallhmgethlenhsetnxhincrbyhdecrby 哈希的编码方式哈希的应用 hash 常用命令 hset HSET key field value [field value ...]//时间复杂度O(1) //返回值:设置成功的键值对的个数hget HGET key field//hdel HDEL key…

数据结构——树(终极版)

树的基本概念: 树的顶部是根节点也是树的入口 父节点:例如:B是F的父节点 子节点:树中的每个节点都可以有0个或多个子节点 叶子节点:像KLFGMIJ这种没有子节点的节点 节点的度:节点的子节点数&#xff1…

新160个crackme - 059-Dope2112.1

运行分析 输入Name和Serial,点击Registrieren按钮,显示疑似错误提示 百度翻译查看一下,发现是德语 PE分析 Delphi程序,32位,无壳 静态分析&动态调试 ida字符串发现正确提示,双击跟进 来到关键函数&…

现在量化中普遍使用QMT和PTrade?哪家可以同时提供QMT/PTrade?

QMT的特点 全面的功能集成: QMT集成了行情显示、策略研究、交易执行和风控管理于一体,为投资者提供了一站式的量化交易解决方案。 高效的交易执行能力: 通过全内存交易实现低延迟的交易执行,单笔延时小于1ms,确保了交易…

秒懂C++之智能指针

目录 前言 智能指针的使用及原理 RAII RAII弊端 std::auto_ptr std::unique_ptr std::shared_ptr shared_ptr弊端 std::weak_ptr 扩展(删除器) 前言 为了解决抛异常所造成的内存泄漏等问题~秒懂C之异常-CSDN博客~我们来学习智能指针的相关用法…