Celery的使用

一、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
当然,我可以给你一个简单的 Celery 使用示例。Celery 是一个强大的分布式任务队列框架,常用于处理异步任务和定时任务。 首先,你需要安装 Celery。你可以使用 pip 命令来安装: ```bash pip install celery ``` 接下来,创建一个 Celery 应用。在你的项目中创建一个名为 `tasks.py` 的文件,并添加以下内容: ```python from celery import Celery # 创建 Celery 应用 app = Celery('tasks', broker='redis://localhost:6379/0') # 定义任务 @app.task def add(x, y): return x + y ``` 这里我们使用了 Redis 作为消息代理(broker),你也可以选择其他的消息代理,比如 RabbitMQ。 接下来,在你的项目根目录下创建一个名为 `celery_worker.py` 的文件,并添加以下内容: ```python from tasks import app # 启动 Celery 工作进程 if __name__ == '__main__': app.worker_main() ``` 现在,你可以启动 Celery 工作进程了。打开终端,进入你的项目根目录,运行以下命令: ```bash celery -A celery_worker worker --loglevel=info ``` 这样,Celery 工作进程就会启动并开始监听任务了。 最后,你可以在你的代码中调用 `add` 任务,示例如下: ```python from tasks import add result = add.delay(4, 6) # 异步调用任务 print(result.get()) # 获取任务结果 ``` 这样就完成了一个简单的 Celery 使用示例。你可以根据自己的需求定义更多的任务,并在你的代码中调用它们。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值