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

Django使用Celery异步

安装包
pip install celerypip install eventlet 
1.在项目文件的根目录下创建目录结果

2. 在main.py文件中
# !/usr/bin/env python
# -*-coding:utf-8 -*-"""
# Author     :skyTree
# version    :python 3.11
# Description:celery 主文件
"""from celery import Celery# 1,创建celery实例对象
celery_app = Celery('meiduo')# 2,加载配置文件
celery_app.config_from_object('celery_tasks.config')# 3,自动注册异步任务
celery_app.autodiscover_tasks(['celery_tasks.sms'])
 3.config.py文件
# !/usr/bin/env python
# -*-coding:utf-8 -*-"""
# Author     :skyTree
# version    :python 3.11
# Description:celery 配置文件
"""
# 指定任务队列的位置
broker_url = "redis://localhost:6379/0"
4.在项目后端文件下执行启动命令,即可,此时说明clery已经安装成功!
# celery_tasks.main为celery包名加主文件 
celery -A celery_tasks.main worker -l info
5.在task.py文件中将发送短信的任务注册到task中必须使用装饰器并在装饰器中设置别名便于区分
# !/usr/bin/env python
# -*-coding:utf-8 -*-"""
# Author     :skyTree
# version    :python 3.11
# Description:sms功能异步任务
"""
from .send_sms import Send_SMS
from ..main import celery_app@celery_app.task(name='send_sms_code')
def send_sms_code(mobile, sms_code):"""发送短信验证码的celery异步任务:param mobile: 手机号:param sms_code: 验证码:return:"""Send_SMS().send(mobile=mobile, code=sms_code)
6.在视图函数中调用异步任务
# apply_async接受的参数必须为元组或者列表
result = send_sms_code.apply_async((mobile, sms_code,))# 使用dealy方法也可以
result = send_sms_code.dealy(mobile, sms_code)
7.执行celery启动命令

注意: 必须使用 celery -A celery_tasks.main worker -l info -P eventlet 才会提示如下信息表示成功

如果使用 celery -A celery_tasks.main worker -l info 命令显示如下信息,此时任务根本没有执行

http://www.lryc.cn/news/303448.html

相关文章:

  • vue3 + ts + echart 实现柱形图表
  • c语言结构体与共用体
  • vue系列--vue封装拖拽指令v-drag
  • devc++ 使用 winsock 实现 UDP 局域网 WIFI 广播
  • JS实现根据数组对象的某一属性排序
  • CSP-J 2023 复赛第2题:公路 ← 贪心算法
  • 【LeetCode打卡】Day23|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • Transformer位置表示(Position Encoding)
  • LPDDR6与LPDDR5 State Diagram技术探讨
  • AliLinux的使用Docker初始化服务(详细)
  • docker环境常用容器安装
  • 【论文阅读|基于 YOLO 的红外小目标检测的逆向范例】
  • 【presto权威指南】常用操作
  • Python程序员面试准备:八股文题目与解答思路
  • 如何系统地自学Python?
  • mysql 2-21
  • 【C#】List泛型数据集如何循环移动,最后一位移动到第一位,以此类推
  • LeetCode23.合并K个升序链表
  • (01)Hive的相关概念——架构、数据存储、读写文件机制
  • 二维码扫码登录原理,其实比你想的要简单的多
  • Java 实现 Awaitable(多线程并行等待,类似 AutoEventReset 的作用)
  • AI之Sora:Sora(文本指令生成视频的里程碑模型)的简介(能力/安全性/技术细节)、使用方法、案例应用之详细攻略
  • IListManger feeds流
  • 视频推拉流EasyDSS视频直播点播平台授权出现激活码无效并报错400是什么原因?
  • 设计模式三:工厂模式
  • 2024.2.15 模拟实现 RabbitMQ —— 消息持久化
  • 【技巧】金融企业在搭建服务器时,选择私有云方案还是全栈专属云?
  • 【大厂AI课学习笔记】【2.2机器学习开发任务实例】(10)模型评测
  • 【C++游戏开发-03】贪吃蛇
  • 如何理解CSS的边框宽度?