当我尝试使用 pika (python) 向 RabbitMQ 确认消息时,出现错误“未知的传递标签”

2024-02-02

我想在几个线程中处理消息,但在执行此代码期间遇到错误:

from __future__ import with_statement
import pika
import sys
from pika.adapters.blocking_connection import BlockingConnection
from pika import connection, credentials
import time
import threading
import random
from pika.adapters.select_connection import SelectConnection
from pika.connection import Connection
import traceback


def doWork(body, args, channel):


    r = random.random()
    time.sleep(r * 10)
    try:        
        channel.basic_ack(delivery_tag=args.delivery_tag)

    except :
        traceback.print_exc()


auth = credentials.PlainCredentials(username="guest", password="guest")
params = connection.ConnectionParameters(host="localhost", credentials=auth)
conn = BlockingConnection(params)
channel = conn.channel()


while True:

    time.sleep(0.03)    
    try:

        method_frame, header_frame, body = channel.basic_get(queue="test_queue")
        if method_frame.NAME == 'Basic.GetEmpty':
            continue        

        t = threading.Thread(target=doWork, args=[body, method_frame, channel])
        t.setDaemon(True)
        t.start()

    except Exception, e:
        traceback.print_exc()
        continue

错误描述:



Traceback (most recent call last):
  File "C:\work\projects\mq\start.py", line 43, in 
    method_frame, header_frame, body = channel.basic_get(queue="test_queue")
  File "C:\work\projects\mq\libs\pika\adapters\blocking_connection.py", line 318, in basic_get
    self.basic_get_(self, self._on_basic_get, ticket, queue, no_ack)
  File "C:\work\projects\mq\libs\pika\channel.py", line 469, in basic_get
    no_ack=no_ack))
  File "C:\work\projects\mq\libs\pika\adapters\blocking_connection.py", line 244, in send_method
    self.connection.process_data_events()
  File "C:\work\projects\mq\libs\pika\adapters\blocking_connection.py", line 94, in process_data_events
    self._handle_read()
  File "C:\work\projects\mq\libs\pika\adapters\base_connection.py", line 162, in _handle_read
    self._on_data_available(data)
  File "C:\work\projects\mq\libs\pika\connection.py", line 589, in _on_data_available
    frame)                 # Args
  File "C:\work\projects\mq\libs\pika\callback.py", line 124, in process
    callback(*args, **keywords)
  File "C:\work\projects\mq\libs\pika\adapters\blocking_connection.py", line 269, in _on_remote_close
    frame.method.reply_text)
AMQPChannelError: (406, 'PRECONDITION_FAILED - unknown delivery tag 204')
  

版本:鼠兔 0.9.5、rabbitMQ 2.6.1


问题可能是你正在设置no_ack=True像这样:

consumer_tag = channel.basic_consume(
    message_delivery_event,
    no_ack=True,
    queue=queue,
)

然后确认消息:

channel.basic_ack(delivery_tag=args.delivery_tag)

您必须选择是否要确认并设置正确的消费参数。

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

当我尝试使用 pika (python) 向 RabbitMQ 确认消息时,出现错误“未知的传递标签” 的相关文章

  • 在 Django 中翻译文件时的 Git 命令

    我在 Django 中有一个现有的应用程序 我想在页面上添加翻译 在页面上我有 trans Projects 在 po 文件中我添加了 templates staff site html 200 msgid Projects msgid P
  • 如何在 Flask 中获取 POSTed JSON?

    我正在尝试使用 Flask 构建一个简单的 API 现在我想在其中读取一些 POSTed JSON 我使用 Postman Chrome 扩展进行 POST 我 POST 的 JSON 很简单 text lalala 我尝试使用以下方法读取
  • 磁盘寻道时间测量方法

    我编写了一个脚本来测量 HDD 上的寻道时间 并且其完成方式的微小变化会导致显着不同的时间 第一个周期在磁盘开头的区域内进行跳转 第二个周期选择磁盘上执行查找的随机区域 相同大小 这种方法显然不同 但我不明白为什么它会改变结果 请注意 对于
  • 为什么 Python exec 中的模块级变量无法访问?

    我正在尝试使用Pythonexec in a project https github com arjungmenon pypage执行嵌入的Python代码 我遇到的问题是在模块级 in an exec声明是难以接近的来自同一模块中定义的
  • “ModuleNotFoundError:我的 Docker 容器中没有名为 的模块”

    我正在尝试在 Docker 容器中运行 python 脚本 但我不知道为什么 python 找不到任何 python 模块 我认为它与 PYTHONPATH 环境变量有关 所以我尝试将其添加到 Dockerfile 中 如下所示 ENV P
  • 我应该使用课程吗? (Python)

    我正在尝试编写一个包含一些数学函数的小型 Python 模块 例如 它可能包含如下函数 def quad x a b c return a x 2 b x c 您可能会注意到它包含几个参数 即a b c 除了变量x 现在 如果我将其放入文件
  • 给定日期时间列的熊猫按周分组

    假设我有以下数据样本 df pd DataFrame date 2011 01 01 2011 01 02 2011 01 03 2011 01 04 2011 01 05 2011 01 06 2011 01 07 2011 01 08
  • 使用 .fromkeys 初始化嵌套字典[重复]

    这个问题在这里已经有答案了 您好 我想知道创建嵌套字典时使用 fromkeys 方法创建嵌套字典不起作用 x 1 2 3 4 5 y 7 8 9 10 11 zx dict fromkeys x dict fromkeys y 0 它创建一
  • Keras:binary_crossentropy 和 categorical_crossentropy 混淆

    使用 TensorFlow 一段时间后 我阅读了一些 Keras 教程并实现了一些示例 我找到了几个使用卷积自动编码器的教程keras losses binary crossentropy作为损失函数 我想binary crossentro
  • 子进程.CREATE_NEW_CONSOLE

    我有这个Python代码 import subprocess subprocess Popen airmon ng check kill creationflags subprocess CREATE NEW CONSOLE Linux M
  • 如何找到由完全相对的字母组成的单词? (蟒蛇)[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我尝试了很
  • 卸载我安装的所有 Python 包及其依赖项,而不用破坏我的 Mac

    有很多问题 但正确的方法似乎是手动卸载不需要的所有内容 pip 在卸载时不会卸载包的依赖项 https stackoverflow com questions 7915998 does uninstalling a package with
  • 如何只获取父类对象的属性

    我有两节课 class Parent object def init self id name self id id self name name self parent vars id name make a copy def print
  • Python 如何比较字符串和整数?

    给出以下代码 a 1 if a 1 print yes else print no 我们得到的输出为no Python 如何将字符串值与 int 进行比较 if a 1 在 C 中 这样的比较会产生错误 因为这是比较不同的类型 Python
  • 在Python中检测re(regexp)对象

    我想知道什么是正确的 pythonic 向后和向前兼容的方法如何检查对象是否已编译re object isinstance方法不能轻易使用 而生成的对象声称是 sre SRE Pattern object gt gt gt import r
  • 如何识别与我的对象相关的轮廓并找到它们的几何质心

    问题陈述和背景信息 EDIT 约束 法兰上的红色会随着时间的推移而变化 所以我此时不会尝试使用颜色识别来识别我的对象 除非它足够强大 此外 外部照明也可能是一个因素 因为将来这将是在室外区域 我有 RGB 深度相机 有了它 我就能捕捉到这个
  • Python 中的动态关键字参数?

    python 有能力创建动态关键字吗 例如 qset filter min price usd range min price max price 我希望能够改变usd部分基于所选货币 是的 它确实 使用 kwargs在函数定义中 Exam
  • 初始化 dask 分布式工作线程的状态

    我正在尝试做类似的事情 resource MyResource def fn x something dosemthing x resource return something client Client results client m
  • Python 类型提示:typing.Mapping 与typing.Dict

    我正在开发一个 python 项目 我们使用typing整个模块类型提示 看来我们用的是typing Dict and typing Mapping几乎可以互换 有理由选择其中一种而不是另一种吗 我自己设法回答了这个问题 typing Di
  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮

随机推荐

  • 从地图容器中查找大于用户指定值的第一个值

    我有一个地图容器 如何使用 find if 返回第一个大于用户指定搜索值的值 如下所示 std map
  • 如何获取重定向的 URL

    我有一个 URL 当我尝试在浏览器中打开它时 它将重定向到另一个 URL 并显示内容 我想要该内容 但我没有收到重定向的 URL 所以 我无法显示数据 我怎样才能以编程方式做到这一点 例如我有的网址 http www windpoweren
  • 从相同源代码生成的两个DLL文件有什么区别

    我的所有代码都受源代码控制 因此我 100 确定源代码没有更改 但是 如果我构建 C DLL 两次 它们的内容会略有不同 我可以通过构建然后再次构建来 100 重现问题 这似乎根本不会影响程序 但是像 MSIMSP 这样用于从两个 MSI
  • 是否可以在mysql语句中运行apriori关联规则?

    数据库 Transacation Items List T1 butter T1 jam T2 butter T3 bread T3 ice cream T4 butter T4 jam 在上表中 是否可以在mysql语句中运行aprior
  • Crypto++ AES 解密如何?

    那里几乎没有关于 crypto 的菜鸟指南 或者无论如何我都没有找到 我想要做的是解密使用另一个 AES 加密器生成的 uchar 数组 我该从哪里开始呢 我已经建立了图书馆并链接了盛大的图书馆 我是否需要设置任何内容 或者只是在数组上调用
  • 如何在 C# 中生成 JSON Web 密钥 (JWK)

    我需要使用 C 生成 JSON Web Key jwk 如图所示 我已经阅读了几篇文章 但也有其他语言 例如 Java 的实现 并且有第三方库 Nimbus JOSE JWT 库等 您能帮我用 C 生成 JSON Web Key 吗 e A
  • 如何在骆驼单元测试中模拟多个组件?

    我正在使用CamelTestSupport在骆驼版本 2 13 1 中 我想做这样的事情来模拟两个不同的组件 Override public String isMockEndpoints return activemq exec 我不能只是
  • 在Python中重写OptionParser的add_option函数

    我写了一个子类Option and OptionParser在 optparse 中 我正在重写add optionOptionParser 中的函数使其解析新关键字 以下是我的代码 from optparse import Option
  • java读取动态网页内容

    我需要帮助阅读网页内容 目前我正在使用以下方法来读取内容 BufferedReader in new BufferedReader new InputStreamReader page openStream String inputLine
  • 任务仅在 Spark 中的一个执行器上运行[重复]

    这个问题在这里已经有答案了 我正在使用 Java 在 Spark 中运行以下代码 Code 测试 java package com sample import org apache spark SparkConf import org ap
  • 获取字符串的字节长度

    AS3中有没有一种简单的方法来获取字符串的字节长度 String length 在许多情况下都有效 但如果遇到多字节 unicode 字符就会中断 在这种特殊情况下 我需要知道这一点 以便我可以在通过 TCP 套接字发送的消息前加上消息长度
  • 通过 vb.net 应用程序登录 Facebook

    我计划创建一个 vb net 应用程序 该应用程序将与用户的 Facebook 帐户同步 我想创建一个应用程序 允许用户登录其帐户 获取通知 好友请求 查看 回复 创建消息以及他们希望通过此 vb net 应用程序从 facebook 获取
  • 错误 1064 (42000) 未能授予权限

    我按照说明向 Rails 授予数据库权限 我使用了以下代码 GRANT ALL PRIVILEGES ON demo proejcts development TO rails user localhost IDENTIFIED BY PA
  • 在功能文件中使用空手道配置参数

    空手道标头示例 https github com intuit karate blob master karate demo src test java demo headers headers feature不显示如何访问除baseUrl
  • Gatsby 开发失败:错误:找不到模块“gatsby-cli/lib/reporter”

    在终端中执行 gatsbydevelop 命令时 不断从 gatsby cli 收到错误 已删除节点模块并使用 npm 重新安装 尝试将 Gatsby Cli 安装为单独的模块 但这只会导致更多 gatsby cli 错误 Gatsby c
  • Math.Pow 计算不正确

    我在使用 C 时遇到问题 准确地说是 Math pow 如果我尝试计算 15 14 则会得到 29192926025390624 但如果我用 Wolfram Alpha 计算它 我会得到 29192926025390625 正如您所看到的
  • 无法将 System.String 转换为 System.Uri

    我正在使用 Web 客户端类从互联网 实际上是 Flickr 下载文件 只要我使用 这就可以正常工作 WebClient DownloadData string 但是这会锁定 UI 因为它不是异步的 然而当我尝试时WebClient Dow
  • Javacard 共享接口:lookupAID 返回 AID,但 getAppletShareableInterface 返回 null

    编辑2 发现错误 我尝试在构造函数中初始化 Shareable 对象 此时客户端的register方法还没有被调用 所以JCRE没有它的AID 虽然我的服务器的 getShareableInterfaceObject AID clienta
  • Symfony 2“您的会话已超时或您已禁用 cookie”

    三件事之一导致了这个问题 我不确定是三件事中的哪一件 所以我会提到这三个 希望能帮助其他人节省时间 最初我更改了parameters yml中的数据库用户凭据 这不起作用 因为相关用户无法从本地主机登录 也就是说 我使用该站点来测试连接 这
  • 当我尝试使用 pika (python) 向 RabbitMQ 确认消息时,出现错误“未知的传递标签”

    我想在几个线程中处理消息 但在执行此代码期间遇到错误 from future import with statement import pika import sys from pika adapters blocking connecti