在 django 中使用 pika 的 Rabbitmq 监听器

2024-03-02

我有一个 django 应用程序,我想使用来自rabbit mq 的消息。我希望监听器在启动 django 服务器时开始使用。我正在使用 pika 库连接到rabbitmq。提供一些代码示例确实会有帮助。


首先,您需要在 django 项目开始时以某种方式运行您的应用程序https://docs.djangoproject.com/en/2.0/ref/applications/#django.apps.AppConfig.ready https://docs.djangoproject.com/en/2.0/ref/applications/#django.apps.AppConfig.ready

def ready(self):
    if not settings.IS_ACCEPTANCE_TESTING and not settings.IS_UNITTESTING:
        consumer = AMQPConsuming()
        consumer.daemon = True
        consumer.start()

进一步在任何方便的地方

import threading

import pika
from django.conf import settings


class AMQPConsuming(threading.Thread):
    def callback(self, ch, method, properties, body):
        # do something
        pass

    @staticmethod
    def _get_connection():
        parameters = pika.URLParameters(settings.RABBIT_URL)
        return pika.BlockingConnection(parameters)

    def run(self):
        connection = self._get_connection()
        channel = connection.channel()

        channel.queue_declare(queue='task_queue6')
        print('Hello world! :)')

        channel.basic_qos(prefetch_count=1)
        channel.basic_consume(self.callback, queue='queue')

        channel.start_consuming()

这会有所帮助http://www.rabbitmq.com/tutorials/tutorial-6-python.html http://www.rabbitmq.com/tutorials/tutorial-six-python.html

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

在 django 中使用 pika 的 Rabbitmq 监听器 的相关文章

随机推荐

  • 碰撞解决:二次探测与单独链接

    好的 我一直在对哈希表和不同的冲突解决问题进行一些实验 我试图找出哪个更有效地进行查找 即使用单独的链接或二次探测来解决冲突的哈希表 我的结果表明 即使对于较小的负载因子 例如 0 4 或 0 2 单独链接也比二次探测更快 是这种情况还是我
  • 支持Android材质设计

    我们正在重新设计我们的 Android 应用程序 考虑到即将推出的 Android L 平台及其材质风格 出现了一个问题 支持旧设备的方式是什么 这种新设计在 4 x 设备上可以接受吗 根据Android Material Design 兼
  • iOS SwiftUI 搜索栏和 REST-API

    我正在尝试使用 SwiftUI 并希望使用搜索字符串从我的 REST API 获取更新 但是 我现在不确定如何将这两个组件组合在一起 我希望你有一个想法 这是我的代码 struct ContentView View State privat
  • 如何配置 Ruby Mechanize 代理以通过 Charles Web 代理工作?

    我正在使用 Ruby Mechanize 编写一个 自动填写表格 应用程序 几乎可以用了 我可以用精彩Charles http www charlesproxy com Web 代理来查看服务器和我的 Firefox 浏览器之间的交换 现在
  • 语言环境 JS 的货币代码

    在这里幽默一下 但我有一个简单的任务 即输入数字并将其格式化为货币代码 IE var value 1000 value toLocaleString en AU style currency currency AUD minimumFrac
  • 在heroku python应用程序上使用什么端口

    所以我创建了 2 个 iOS 应用程序 一个发送坐标 一个接收坐标 和一个 python 服务器 其中一个应用程序将 GPS 坐标发送到托管在 heroku 上的 python 服务器 然后 服务器会将收到的 GPS 坐标发送到其他 iOS
  • 如何将 Bot Framework 对话框拆分到不同的文件中

    我试图让我的机器人代码更易于管理 并将一些属于不同文件的对话框放在一起 这里有一个关于 javascript 的古老的类似问题 https github com Microsoft BotBuilder issues 1457 但我正在努力
  • 如何在反应中保存文件输入值

    假设一个页面包含多阶段表单 在表单的第一阶段包含名称的输入字段 在第二阶段包含文件的输入 onChange设置名称和文件的状态值 但是当我们像第一阶段到第二阶段一样来回移动时阶段和第二阶段 我们可以保存输入类型名称的值 但如何保存输入类型文
  • 在Java中:如何让线程监视另一个线程?

    抱歉 如果问题很简单 我是初学者 我必须创建计算某些内容的线程 而第一个线程工作时 另一个线程必须测量第一个线程是否在指定时间内计算函数 如果没有 它必须抛出异常 否则返回答案 我会采用 java util concurrent 组件 简单
  • 在GNU Emacs中,如何按模式设置背景颜色?

    在 GNU Emacs 中 我发现我可以在不同模式下为前景类型设置不同的面孔 例如 custom set faces message header to t foreground LightGoldenrod1 weight bold 如何
  • 在詹金斯上安排每两周一次的工作

    我想在 jenkin 上安排每两周一次的工作 它应该每隔一周星期一运行一次 我无法弄清楚 cron 表达式 我做了一些研究 基本上可以归结为 3 个答案 快速回答 你不能 复杂答案1 您可以在单独的行中手动输入每隔一个星期日的条目 但是当年
  • 在Python中旋转位

    出于好奇 我想看看将对象的 id 转换为其哈希值的操作在字符串域中是什么样子 而不是使用通常的按位操作 例如 class A pass def my hash a bits format id a 064b rot4 bits 4 bits
  • Powershell 无法返回正确的退出代码

    使用以下命令执行 Powershell 脚本 2 0 中 时 File命令行开关 并在 Param 中显式定义输入参数 退出代码始终为 0 永不失败 而不是正确返回定义或预期的错误代码 使用显式参数定义和 Command开关 但是出于无关目
  • 使用 iOS Simulator 和 XCode 4 调试应用程序崩溃在 main() 函数中停止,而不是崩溃源 [重复]

    这个问题在这里已经有答案了 可能的重复 Xcode 4 2 出错时显示错误的代码行 https stackoverflow com questions 7973555 xcode 4 2 showing the wrong line of
  • 使用 yum 在 CentOS 上安装 OpenJDK 11

    我想使用 yum 安装 OpenJDK 11 然而 当我检查 OpenJDK 手册时 它说你只能使用 yum 安装 Java 8 但是 对于 Java 9 及以上版本 它说你必须下载 zip 或 tar 文件 https openjdk j
  • GPS 应用程序在 iOS 5 上停止工作 - 位置管理器未更新

    我开发了一个针对 iOS 4 3 的应用程序 效果很好 但自从我迁移到 iOS 5 0 以来 该应用程序开始表现出奇怪的行为 位置管理器不显示位置变化的更新 有人遇到过这种问题吗 谢谢你的帮助 我与 CLLocation 经理共享票价 出现
  • 没有 Visual Studio 2010 的 T4 代码生成?

    是否可以在不需要 Visual Studio 2010 的情况下运行 T4 代码生成 基本上我必须构建一个内部 ORM 不要问 如果我有选择我不会 我计划使用亚音速作为基础 但改变一些东西及其工作方式 然而我的主要问题是我可以从我编写的外部
  • Spring Data Elasticsearch (4.x) - 使用 @Id 强制 _source 中的 id 字段

    Summary 最近我们升级到 Spring Data Elasticsearch 4 x 这个主要版本的一部分意味着 Jackson 不再用于将我们的域对象转换为 json 使用MappingElasticsearchConverter相
  • 静态库中的 Objective-C 类别

    你能指导我如何正确地将静态库链接到 iPhone 项目吗 我使用添加到应用程序项目中的静态库项目作为直接依赖项 目标 gt 常规 gt 直接依赖项 并且所有工作正常 但类别 静态库中定义的类别在应用程序中不起作用 所以我的问题是如何将某些类
  • 在 django 中使用 pika 的 Rabbitmq 监听器

    我有一个 django 应用程序 我想使用来自rabbit mq 的消息 我希望监听器在启动 django 服务器时开始使用 我正在使用 pika 库连接到rabbitmq 提供一些代码示例确实会有帮助 首先 您需要在 django 项目开