当前位置: 首页 > article >正文

Celery的使用

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.kler.cn/news/308174.html

相关文章:

  • C语言-结构体-详解
  • 阿里云 Quick BI使用介绍
  • 【系统架构设计师-2014年真题】案例分析-答案及详解
  • HTTPX 与 AIOHTTP 与 Requests:选择哪个?
  • 【个人博客hexo版】hexo安装时会出现的一些问题
  • 【Qt笔记】QToolBox控件详解
  • STL相关简介
  • TeamTalk梳理概括
  • JDBC注册驱动及获取连接
  • 【MATLAB GUI 设计第一篇 】
  • packer-fuzzer使用
  • 从0-1 用AI做一个赚钱的小红书账号(不是广告不是广告)
  • 32.递归、搜索、回溯之floodfill算法
  • 【D3.js in Action 3 精译_023】3.3 使用 D3 将数据绑定到 DOM 元素
  • 掌握这几个酱酒特点术语,聊天更显内行
  • 17、电科院FTU检测标准学习笔记-录波性能
  • GeoPandas在地理空间数据分析中的应用
  • ElasticSearch-2-核心语法集群高可用实战-Week2
  • 二叉树总结篇(2)
  • Imagen:重塑图像生成领域的革命性突破
  • websocket 和sip 在协议层面有哪些区别,为什么要各自这样设置协议
  • 鸿蒙开发笔记_电商严选02_登录页面跳转到我的页面、并传值
  • Google 工程师开始用Rust 语言开发 Android 固件
  • 简单了解Maven与安装
  • 数组与贪心算法——649、678、420 数字与贪心 343(3中1难)
  • 【算法】差分思想:强大的算法技巧
  • Sybase「退役」在即,某公共卫生机构如何实现 SAP Sybase 到 PostgreSQL 的持续、无缝数据迁移?
  • MySQL日志binlog和redo log区别
  • 算法面经手撕系列(3)--手撕LayerNormlization
  • 【算法】滑动窗口—最小覆盖子串