如何从 RabbitMQ 获取旧消息?

2024-01-15

我使用 Bunny (Ruby) 发布 RabbitMQ 消息,如下所示:

x.publish("Message !"+n.to_s, :routing_key => 'mychannel')

并像这样订阅:

    ch   = conn.create_channel
x    = ch.topic('fling',durable: true)
q    = ch.queue("")
q.bind(x, :routing_key => 'mychannel')


puts "Waiting for messages."
q.subscribe( :block => true) do |delivery_info, properties, body|
puts " [x] Received #{body}, message properties are #{properties.inspect}"

一旦我启动订阅者,它就会立即接收发送的任何消息。但是,如果我在没有启动订阅者的情况下发送消息,则当我启动订阅者时不会收到消息(无论发送者是否仍在推送消息)。

当没有订阅者在监听时,是否可以返回队列并接收过去发送的消息?


每次启动消费者时,您都会创建一个新队列!因此,当您重新启动消费者时,新队列会收到新消息,但没有以前的消息。

Do this:

q    = ch.queue("myqueue",durable: true)

而不是这个:

q    = ch.queue("")

然后,一旦您重新启动消费者,它将立即尽快获取所有备份的消息。

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

如何从 RabbitMQ 获取旧消息? 的相关文章

随机推荐

  • 在包含 AudioToolbox 框架的 Objective-C iOS 项目中找不到 AudioServices.h

    根据苹果文档 AudioServices h应该是AudioToolbox框架的一部分 尽管我已将 AudioToolbox 框架添加到我的 Xcode 项目中 但当我 import AudioServices 时 我收到错误 未找到 Au
  • 在 foreach 中强制转换为数组是否被认为是一种不好的做法?

    在启动 foreach 循环时转换为数组是否被认为是一种不好的做法 像这样的事情 foreach array examples as example Do stuff 这可以防止 为 foreach 提供的参数无效 免于发生 或者首先检查它
  • 如何使用Keras API提取“从输入层到隐藏层”和“从隐藏层到输出层”的权重?

    我是 Keras 新手 我正在尝试获取 Keras 中的权重 我知道如何在 Python 中的 Tensorflow 中执行此操作 Code data np array attributes int64 target np array la
  • MatMul 运算在张量流中如何工作?

    我注意到张量流中定义的 MatMul 运算 形状函数 Status MatMulShape shape inference InferenceContext c ShapeHandle a TF RETURN IF ERROR c gt W
  • 如何更改Mongo文档中嵌套字段的数据类型?

    我的 Mongo 结构如下 topProcesses cpuUtilizationPercent 0 0 processId 1 memoryUtilizationPercent 0 1 command init user root cpu
  • Firefox 中保存的密码发送空字段

    我在保存浏览器凭据时遇到问题 我第一次使用应用程序登录时 浏览器要求我保存字段 我按 确定 但是当我第二次登录并且浏览器使用保存的凭据填写表单字段时 我按登录 浏览器发送不带参数的请求 HTML div div
  • 如何使用所有处理器在 MPI 中发送/接收

    该程序使用 C Lagrange 和 MPI 编写 我是 MPI 新手 想要使用所有处理器进行一些计算 包括进程 0 为了学习这个概念 我编写了以下简单程序 但是这个程序在接收到进程0的输入后挂在底部 并且不会将结果发送回进程0 inclu
  • 通知图标在通知托盘上为白色

    我的通知托盘上的应用程序图标在 Android 5 上变成白色 我见过这个Android 5 Lollipop 中通知栏图标变白 https stackoverflow com questions 28387602 notification
  • 如何在 Windows 窗体应用程序中创建 Alt 快捷方式?

    我想为 Windows 窗体应用程序中的某些控件创建键盘快捷键 Example 注意带下划线的 F E V P B I have a label and a textbox control I d like to associate tha
  • 可以检测页面抓取吗?

    所以我刚刚创建了一个为我执行页面抓取的应用程序 并运行它 效果很好 我想知道是否有人能够弄清楚代码正在被页面抓取 无论他们是否为此目的编写了代码 我用java编写了代码 它几乎只是检查一行html代码 我想在向该程序添加更多代码之前我应该
  • CGContextClipToMask 返回空白图像

    我是石英新手 我有 2 个图像 一个背景和一个带有剪切形状的蒙版 我想将其放置在背景上以剪切出一部分 生成的图像应该是切口的形状 这是我的面具 中间的形状是 0 alpha 这是我的代码 UIView canvas sender super
  • 稍后发送电子邮件

    我想知道是否 v1 0 me sendMail具有延迟发送电子邮件的能力 在 Outlook 客户端中 您可以指定希望在稍后的日期和时间发送电子邮件 我四处探听 看看是否有一个属性可以在消息对象上设置来指示这一点 有人找到办法让它工作吗 当
  • iOS 在 UIWebView 表单输入中使用 UIKeyboardTypeDecimalPad

    我想用 显示小数点 在基于 cordova 的应用程序中本机应用程序使用的左上角 我见过很多使用私有 API 等的线程 但我想要一个可以用于应用程序商店提交的解决方案 任何帮助表示赞赏 我已经尝试过一些东西 this https stack
  • “范围错误:超出最大调用堆栈大小”为什么?

    如果我跑 Array apply null new Array 1000000 map Math random 在 Chrome 33 上 我得到 RangeError Maximum call stack size exceeded Wh
  • 如何在两个不同的核心数据模型之间共享实体

    我想知道如何在两个不同的核心数据模型之间共享实体 例如 我有一个 Universe 模型描述了 世界数据 以其 国家数据 另一方面 我有一个 人口 模型 它描述了 人类数据 以其 国家数据 我绝对希望将我的模型分开 提前致谢 你检查过了吗核
  • 在QML中动态创建ListModel

    当我需要在运行时创建任何 QML 组件时 我可以使用该指南 http qt project org doc qt 5 qtqml javascript dynamicobjectcreation html http qt project o
  • 输入字段值中的 HTML

    如何让 HTML 在输入字段的值中起作用 如果值中包含 HTML 它将显示为纯文本 有没有办法做这样的事情
  • 在 MATLAB 中嵌入 Python

    我正在尝试将 Python 2 6 嵌入到 MATLAB 7 12 中 我想嵌入一个用 C 编写的 mex 文件 这对于使用标量的小型简单示例来说效果很好 但是 如果以任何方式导入 Numpy 1 6 1 MATLAB 都会崩溃 我说无论如
  • Spring微服务端到端测试

    我想为使用 Spring Boot 构建的管道编写端到端测试 考虑两个微服务 A B 其中 B 消耗 A 的输出并生成 RESTful API 它们使用rabbitmq连接并依赖外部数据库 我想实现类似的目标 创建一个包含两个微服务的新项目
  • 如何从 RabbitMQ 获取旧消息?

    我使用 Bunny Ruby 发布 RabbitMQ 消息 如下所示 x publish Message n to s routing key gt mychannel 并像这样订阅 ch conn create channel x ch