Rabbitmq Consumer_Timeout 行为未按预期工作?

2023-11-27

我很难证明consumer_timeout设置正在按预期工作。 我可能做错了或者误解了consumer_timeout行为。

我所有的测试代码都可以在这里找到:https://github.com/Rafarel/rabbitmq-tests

基本上,我有一个consumer_timeout设置为 10000 毫秒(10 秒),然后我尝试通过回调来消耗该消息 在尝试确认消息之前,它会休眠比超时值(20 秒)长一点的时间。

由于超时,我应该有一个 PRECONDITION_FAILED 异常,但事实并非如此。 如果我设置了例外情况SLEEP_DURATION in receive_timeout.py远多于consumer_timeout值如 60 秒。

引用自https://www.rabbitmq.com/consumers.html#acknowledgement-timeout

如果消费者在超过超时值(默认为 30 分钟)的时间内没有确认其交付,则其通道将被关闭,并出现 PRECONDITION_FAILED 通道异常。

如果有人可以帮助我理解我做错了什么,那就太好了,谢谢!


一些有用的提示:

  1. 动态配置

您可以动态设置consumer_timeout通过在 RabbitMQ 服务器上运行以下命令来获取值:

rabbitmqctl eval 'application:set_env(rabbit, consumer_timeout, 36000000).'

这会将新超时设置为 10 小时(36000000 毫秒)。为了使其生效,您需要重新启动您的工作人员。现有的工作连接将继续使用旧的超时。

您还可以检查当前配置的超时值:

rabbitmqctl eval 'application:get_env(rabbit, consumer_timeout).'

  1. 使用 Docker 镜像

如果您通过 Docker 映像运行 RabbitMQ,则设置该值的方法如下:只需添加-e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbit consumer_timeout 36000000"给你的docker run或者设置环境RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS to "-rabbit consumer_timeout 36000000".

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

Rabbitmq Consumer_Timeout 行为未按预期工作? 的相关文章

随机推荐

  • 如果调用某些函数,我可以强制编译器出错吗?

    我的软件有 v1 和 v2 版本 v1 使用注册表来保存设置 大量调用 GetProfileInt 等 v2 现在使用 sqlite 数据库来保存设置 我们目前正在开发这两个分支 并将新功能从 v1 分支合并到 v2 分支 目前 我们必须记
  • 请求 MTU 在 Nougat 中不起作用

    我正在开发与 BLE 设备通信的应用程序 我可以轻松地在特性上写入 20 个字节 但是当它超过 20 个字节时 就会产生问题 我正在使用 mBluetoothGatt requestMtu 512 写出成功后的特征 Override pub
  • 在 Swift 中实现 RCTEventEmitter 但未设置桥接收异常

    我正在尝试在 Swift 中实现 React Native 的事件发射器 以便我可以在我的一些本机模块中重用它 但是 当我从 iOS 本地发送事件时 收到以下错误 Bridge is not set This is probably bec
  • 强制下载 PNG,而不是使用 IIS 在浏览器中打开

    我需要能够下载所有 PNG 图像的子目录 而不是在浏览器窗口中打开 我使用 IIS 作为 Web 服务器 有没有办法强制 PNG 可下载 正如其他发帖者所说 您需要将 HTTP Content Disposition 标头 带有附件值 添加
  • 无法使用 yii\base\Object 作为对象,因为 'Object' 是一个特殊的类名 yii2 advance

    我刚刚买了一台更强大的电脑 安装了 Composer 并想在上面继续我的项目 但是当我使用 gii 时 它给了我这个错误 我该如何解决它 为什么我会得到它 谢谢 解决了 从2 0 13开始 类名Object自 PHP 7 2 起无效 请使用
  • 使用实体框架从存储过程中检索表数据

    我正在使用实体框架 v6 我有一个存储过程 如下所示 CREATE PROCEDURE dbo GetCountryList CustomerName VARCHAR MAX SearchCriteria VARCHAR MAX AS BE
  • 使用 Android NDK 和 C++

    我让示例 HelloJni 项目正常运行 它使用 C 文件作为本机代码 我无法获得任何使用 C 的简单示例 采取以下 JNI 代码 include
  • 有没有办法在 HTML/JavaScript 中指定多个图像源?

    有没有一种方法可以告诉浏览器查看图像 URL 列表 直到找到一个有效的 URL 纯 HTML 是首选 但我猜这里可能需要 JavaScript 我已经在使用 JQuery 所以这不是问题 编辑 感谢您的回答 我将添加一些说明 我所说的 作品
  • 仅当浏览器为 Firefox 时才使用 javascript 隐藏 html 元素

    如果浏览器仅限火狐浏览器 如何使用javascript隐藏div 检查 Firefox 浏览器 Javascript var FIREFOX Firefox i test navigator userAgent if FIREFOX doc
  • 编译失败,并显示“创建共享对象时不能使用针对‘.rodata.str1.8’的重定位 R_X86_64_32”

    我正在尝试从 VPS 中的 makefile 编译此源代码 但它不起作用 VPS 是 64 Cent 操作系统 这是完整的错误 make gcc c O3 w DLINUX I SDK amx SDK amx c g c O3 w DLIN
  • 将字典插入Python堆

    我正在尝试使用 键 值 构建一个堆 因此键是数字 值是字典 import heapq heap dic val 1 number 1 val 2 number 2 val 3 number 3 insetToHeap 2 dic heapq
  • 访问相邻组件/字段的最佳方式

    我正在寻找一种访问组件 字段的方法 这些组件 字段要么与访问的项目位于同一项目数组中 要么甚至仅位于同一父项目数组中 最后一个只是一个选项 在 ExtJS3 中 这很容易 只需定义一个ref在所有者容器中 但我没有在 ExtJS4 中找到类
  • R 根据行中的值在列中重复

    我有一个如下所示的数据框 Name School Weight Days Antoine Bach 0 03 5 Antoine Ken 0 02 7 Barbara Franklin 0 04 3 我想获得如下输出 Name School
  • Python sys.path - 附加 PYTHONPATH

    开始之前 我已经尝试完成它有一段时间了 但我没有运气 我正在尝试创建自己的 python 包 我将在项目中的单独文件中导入其中的模块 我尝试通过 sys 将项目的目录添加到 pythonpath 但 mod wsgi 仍然无法识别它 imp
  • 使用本地通知 ios 打开 url

    我已经搜索了一段时间试图找到答案 但似乎找不到 我想做的是让我的应用程序在后台运行时发送本地通知 并且当用户打开通知时 会将他们带到网站 我已全部设置完毕 但它一直打开应用程序而不是访问网站 我的问题是 这可能吗 如果是这样 您能看看我下面
  • 从源代码构建 Python3.7.3 缺少“_ctypes”

    我正在尝试从源代码构建Python 3 7 3ensurepip但我收到此错误 ModuleNotFoundError No module named ctypes 网上所有的答案都这么说libffi dev是需要的 但我已经安装了它 但它
  • Mobile Safari - 当最后一次触摸被删除时,“touchend”事件没有触发?

    我试图捕获的 手势 是当但仅当元素 其他或相同 已经触摸时的点击 因此 触摸 1 按下按钮 同时触摸 2 点击所选选项 触摸 1 释放并按下按钮 我遇到的问题是最后一点 当我释放最后一个手指时 touchend 事件没有被触发 那么我没有办
  • Android手机可以使用windows DirectX库吗?

    我有一些使用 Windows 中的 Direct X 库绘制游戏屏幕的函数 因此 我尝试使用 ndk 来使用 Android 手机中的功能 但我有一些问题 使用Java的Android手机可以识别Direct X功能吗 如果可以的话 我必须
  • git add --interactive“您编辑的块不适用”

    我正在尝试使用git add interactive有选择地向我的索引添加一些更改 但我不断收到 您编辑的大块不适用 再次编辑 消息 即使我选择 e 选项 我也会收到此消息 并立即保存 关闭我的编辑器 换句话说 如果根本不编辑该块 该补丁就
  • Rabbitmq Consumer_Timeout 行为未按预期工作?

    我很难证明consumer timeout设置正在按预期工作 我可能做错了或者误解了consumer timeout行为 我所有的测试代码都可以在这里找到 https github com Rafarel rabbitmq tests 基本