django中使用celery和rabbitmq

2023-10-27

第一步先安装celery

pip install django-celery

第二步安装rabbitmq

sudo apt-get install rabbitmq-server

添加用户

sudo rabbitmqctl add_user 用户名 密码

将上一步增加的用户设为管理员

sudo rabbitmqctl set_user_tags 上一步的用户名 administrator

添加虚拟环境

sudo rabbitmqctl add_vhost vhost

设置用户在虚拟环境下有全部权限

sudo rabbitmqctl set_permissions -p vhost 用户名 ".*" ".*" ".*"

启动rabbitmq

rabbitmqctl start_app
rabbitmq-plugins enable rabbitmq_management
http://localhost:15672   登录rabbitmq

在django中使用
在settings同级目录下创建celery.py
在这里插入图片描述
在__init__,py中文件写入

from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app

__all__ = ['celery_app']

在celery.py文件中写入

# coding:utf8
from __future__ import absolute_import

import os

from celery import Celery
from django.conf import settings

# set the default Django settings module for the 'celery' program.

# yourprojectname代表你工程的名字,在下面替换掉
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'yourprojectname.settings')

app = Celery('填写settings所在模块的目录名')
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

settings文件配置

import djcelery

djcelery.setup_loader()
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_RESULT_BACKEND = 'amqp'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_BROKER_URL= 'amqp://rabbitmq用户名:密码@localhost:5672/vhost'
INSTALLED_APPS = [
	...
    'djcelery',
]

在自定义的app下创建tasks.py

from __future__ import absolute_import
from celery import shared_task


@shared_task
def add(x, y):
    print('test')
    print('zzz')
    return x + y

获取任务的返回值

res = add.delay(3, 4)
print(res.get())

运行celery-worker

python manage.py celery worker --loglevel=info
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django中使用celery和rabbitmq 的相关文章

  • Flink将本地数据写入Redis

    第一步 配置文件redis conf cd usr apps redis vim redis conf 先输入 set nu 打开行号标识 69行 bind 127 0 0 1加上注释 取消IP绑定 否则其他主机不能连接 88行 prote
  • sqli-labs第十八十九关

    这两关为头注入 Less 18 POST Header Injection Uagent field Error based 手工注入 这关和下一关必须要抓包才能完成 因为在这里怎么是都没有反应 全是报错的状态 那么我估计就要抓包了 根本判
  • pythonqt对比_用 Python 和 C++ 创建 Qt 程序的简单对比

    假设要做一个简单的小窗口 如下图所示 PyQt 和 C 要用多少代码可以完成呢 效果图 注 本文内容较多 主要是 C 的部分 若有必要请直接跳到最后看结论 一 C 版本 除了最基础的 pro 文件之外 我一共创建了 5 个文件 custom
  • 电脑固定ip地址之后重启却失效了的解决办法

    开始 运行 cmd 回车 英文状态下输入 netsh winsock reset 回车后会提示重启 先不重启 继续输入 netsh int ip reset reset log 回车后会提示重启 此时先重启电脑 重启之后再次设置好固定ip地
  • SQL 映射文件

    SQL 映射文件 SQL 映射文件只有很少的几个顶级元素 按照应被定义的顺序列出 cache 对给定命名空间的缓存配置 cache ref 对其他命名空间缓存配置的引用 resultMap 是最复杂也是最强大的元素 用来描述如何从数据库结果
  • 使用LeNet-5识别手写数字MNIST

    LeNet5 LeNet 5卷积神经网络模型 LeNet 5 是Yann LeCun在1998年设计的用于手写数字识别的卷积神经网络 当年美国大多数银行就是用它来识别支票上面的手写数字的 它是早期卷积神经网络中最有代表性的实验系统之一 Le
  • 管理系统权限篇

    目录 前言 cooike 登录篇 登录 router beforeEach 登录拦截 axios拦截器 token过期出处理 权限篇 router js store permission js 前言 登录 当用户填写完账号和密码后向服务端验
  • 热门Android Studio 插件

    Android Studio是基于JetBrains公司的IntelliJ开发的一款功能强大的开发工具 它具有构建出色Android应用所需要的一切 借助基于IntelliJ IDEA的强大的功能 插件非常丰富 正确的使用插件可以帮助你提高
  • linux脚本判断输出结果,shell脚本中的逻辑判断

    if语法 格式1 if 条件 then 语句 fi 格式2 if 条件 then 语句 else 语句 fi 格式3 if then elif then else fi 逻辑判断表达式 if a gt b if a lt 5 if b eq
  • C进阶:通讯录(动态版本 + 文件操作)附源码

    本文主要讲解通讯录的代码 需要拥有结构体 动态内存开辟 文件操作的知识 目录 一 通讯录思路 二 三个文件的建立 三 所需要使用的变量的创建 包含在头文件contact h中 四 主函数的书写 包含在 test c 中 五 通讯录功能的实现
  • HM Fast Learning

    Whole Structure 7 projects App means application T stands for test TLib is library for developer not for application Vid
  • UEFI源码解析之UEFI_DRIVER

    Dxe Driver可以视作UEFI中的一个服务 在entry中通过protocol安装自己的服务 在Bds等位置通过locate protocol使用该服务 不必依赖与具体的硬件 当需要封装某个设备 控制器或总线的时候 对应于具体的物理实
  • 一款强大的芯片nRF52840及利用蓝牙5.0实现数据远程采集

    一 nRF52840蓝牙芯片简介 自从nordic在2018年强势推出nRF52840这颗重磅级芯片后 蓝牙5 0技术开始在业界流行起来 随后蓝牙5 0技术开始成为了各大品牌的旗舰手机标配功能 1 芯片优势 这个芯片最强大的优势就是低速远距
  • SpringBoot - 打包,war包,jar包

    一 war包 1 创建一个springboot的web应用 在src目录下创建一个 webapp目录 我们选择 file gt Project Structure gt 选择模块 选择 Web Resource Directories 新建
  • LVGL(二) SquareLine_Studio1.0.5 可视化编程环境搭建

    一 下载 SquareLine Studio1 0 5 官网链接 https squareline io CS sanDN链接 19条消息 SquareLine Studio Setup1 0 5免积分下载 智能家居文档类资源 CSDN文库
  • [antdv: FormModel] model is required for resetFields to work

    今天在用Vue ant的UI框架进行表单绑定的时候出现报错 Warning antdv FormModel model is required for resetFields to work 通过不断测试才发现是因为没有在表头使用 mode
  • QT ----Canvas绘图

    在使用qtwidget进行界面设计的时候 可以进直接使用gui模块内的控件或者使用QPainter自行绘制组件 但是在qml中QT只给我们提供了一个形状组件 rectangle 可以通过设置它的radius构成圆角矩形 但是 如果我们需要进
  • Tauri 打包

    1 第一次打包运行命令 npm run tauri build 2 可能会出现下面问题 我们需要在tauri conf json里面查找identifier这个名称 原来是com tauri dev 随便改下名字 我这里改成build了 3
  • python精彩编程200例-200G的Python初高级教程+项目实战案例源码,让你做有钱途的人才...

    2018年1月16日上午 教育部正式将人工智能 物联网 大数据处理正式划入高中新课标 这就意味着现在的学生16岁就要开始学习编程了 据统计 在所有专业级别的 39000 名开发人员中 有超过四分之一的开发人员在他们 16 岁之前就写了第一个
  • 面试官: Async是如何被JavaScript实现的

    太久没和大家见面了 因为最近业务上接了新的项目所以写文的时间被严重挤压 这篇 Async 是如何被实现的 其实断断续续已经在草稿箱里躺了很久了 终于在一个夜黑风高的周六晚上可以给他画上一个句号 引言 无论是面试过程还是日常业务开发 相信大多

随机推荐

  • Python 中常见的魔法方法

    什么是Python魔法方法 魔法方法是在Python的类中被双下划线前后包围的方法 如常见的 init new del 等 这些方法在类或对象进行特定的操作时会自动被调用 我们可以使用或重写这些魔法方法 给自定义的类添加各种特殊的功能来满足
  • 内网穿透代理(NPS)搭建以及使用

    与公众号同步更新公众号文章链接 内网穿透代理 NPS 搭建以及使用 部署前提需要一台公网服务器 各大云piao 获取到服务器后需要放行服务器端口 建议所有端口 ALL 新建一个NPS文件夹 mkdir NPS 进入NPS文件夹 cd NPS
  • Go语言面试题--基础语法(11)

    文章目录 1 定义一个包内 全局 字符串变量 下面语法正确的是 2 下面这段代码输出什么 3 下面这段代码输出什么 1 定义一个包内 全局 字符串变量 下面语法正确的是 A var str string B str C str D var
  • 彻底搞懂Vue中的Mixin混入(保姆级教程)

    彻底搞懂Vue中的Mixin混入 保姆级教程
  • 【IC设计】EDA palyground使用

    有时候我们在外地无法使用vivado等工具来进行Verilog编程 可以使用这个在线网站www edaplayground com 这个笔记记录一些需要注意的点 它会自动帮我们建立一个testbench sv 里面写入testbench 需
  • HTML5-画布使用教程

    1 简介画面的基本使用教程 CSS绘图和数据存储原理 橘猫吃不胖 的博客 CSDN博客
  • Python 读取txt文件每一行数据生成列表

    本意是将数据 改为如下形式 push lea push mov call mov mov pop retn mov jmp push mov mov call test jz push call add mov pop retn mov m
  • .PersistenceException: ### Error querying database.Cause: java.lang.NullPointerException

    错误 org apache ibatis io ResolverUtil Checking to see if class com wei mapper UserMapper matches criteria is assignable t
  • c++ protobuf 可能会遇到的坑

    1 发现存在内存泄露 程序退出时记得调用 google protobuf ShutdownProtobufLibrary 这里一定是在程序退出时调用 如果调用后又使用了 protobuf 会出现异常 因为protobuf 中使用构造 会有创
  • Mysql undo log

    一 基本概念 undo log有两个作用 1 为事务提供回滚 2 多版本并发控制 MVCC undo log和redo log记录物理日志不一样 它是逻辑日志 可以认为 当delete操作时 undo log记录的是insert记录 反之亦
  • 【Leetcode】1684. Count the Number of Consistent Strings

    题目地址 https leetcode com problems count the number of consistent strings 给定一个字符串 a a a和一个字符串数组 A A A 问
  • 单链表学习笔记(C语言)

    单链表学习笔记 C语言 一 说明 1 链表 所谓链表 就是用一组任意的存储单元存储线性表元素的一种数据结构 2 结构 链表的每个数据的存储都由两部分组成 1 数据元素本身 其所在的区域称为数据域 2 指向直接后继元素的指针 所在的区域称为指
  • RocketMQ消费者设置了instanceName属性后消息竟不翼而飞

    文章目录 背景 问题重现 生产者代码 消费者代码 紊乱的消费结果 原因分析 消费负载均衡 clientId怎么生成 为什么会生成相同的clientId 解决方案 方案一 不设置instanceName属性 方案二 两个消费者设置不同的ins
  • 踩坑:Python找不到指定路径的文件 最全解决方法

    数据集为ucr时间序列数据集 其中 Adiac文件夹中的文件可以通过下面的代码打开 其他文件格式与Adiac相同 且在同一个目录文件下 跑其他的文件 会出现某某文件不存在的问题 网上找了各种解决方法都尝试了 依然还是会报文件找不到错误 最后
  • 程序媛菜鸡算法题流水账之ZJU机试题

    最近考研分数线还没有正式公布 感觉自己处在危殆边缘 于是分岔路口之多令我眼花缭乱 将近八个月没有碰过IDE 机试路漫漫 且行且记忆 ZJU机试题 from NewCoder 做题顺序为通过率递减 同时推荐用C 用时真的少很多 虽然我选修过但
  • Llama-2大模型本地部署研究与应用测试

    最近在研究自然语言处理过程中 正好接触到大模型 特别是在年初chatgpt引来的一大波AIGC热潮以来 一直都想着如何利用大模型帮助企业的各项业务工作 比如智能检索 方案设计 智能推荐 智能客服 代码设计等等 总得感觉相比传统的搜索和智能化
  • 【GD32】FreeRTOS-ADC-DMA采集

    本文章介绍ADC多通道采集DMA进行传输 并且在任务中实时去获取数据 一 时钟配置 分别配置GPIO ADC DMA时钟 static void SystemClock Configration void rcu periph clock
  • Autofac的AOP面向切面编程研究

    什么是AOP 我的理解是 把系统性的编程工作封装起来 我给这个取个名字叫 Aspect 然后通过AOP技术把它切进我们的业务逻辑代码 业务 这样的好处 Aspect 和 业务 相互独立 既可以让 业务 用到了 Aspect 又让2者互相独立
  • 8.1 霍纳法则

    以下是一个典型的多项式运算 int y 4 x x x x 9 x x x 2 x x 7 x 1 这个表达式能不能性能优化 细数一下这个表达式用了4 3 2 1 10次乘法 同时用到了4次加法 可以优化为 int y 4 x 9 x 2
  • django中使用celery和rabbitmq

    第一步先安装celery pip install django celery 第二步安装rabbitmq sudo apt get install rabbitmq server 添加用户 sudo rabbitmqctl add user