问题标签 [bunny]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
651 浏览

rabbitmq - 使用兔子,连接到现有队列时如何设置 x-max-length

我有以下 ruby​​ 函数来连接到现有的兔子队列,max_length值为 10000

调用时,返回此错误:

兔子版本:2.0.1 Ruby 版本:2.3.1

我已经尝试了各种参数,ch.queue但找不到设置最大队列长度值的方法。

欢迎提出建议。

0 投票
1 回答
189 浏览

ruby-on-rails - RabbitMq:消息处理期间发生异常时从队列中丢失消息

我是 ruby​​ on rails 开发人员。我在我的项目中使用 rabbitMQ 来处理一些数据,一旦数据进入队列。我正在使用 bunny gem 一个 rabbitMQ 客户端,它提供与 RabbitMq 交互的接口。

我的问题是,每当在处理来自队列的数据时发生异常或服务器意外停止时,我来自队列的消息都会丢失。

我想知道人们如何处理 rabbitMQ 队列中丢失的消息。有什么方法可以让这些消息返回进行处理。

0 投票
1 回答
503 浏览

ruby-on-rails - RabbitMq(bunny): Rabbitmq 从队列中删除消息。确认不起作用

我正在处理来自我的 rabbitMQ 的记录。为了避免来自rabbitMQ的消息丢失,我正在使用rabbitMQ确认策略。出于测试目的,我在我向 rabbitMQ 回馈确认的代码之前提出了异常。根据我编写的代码 rabbitMQ 不应该从队列中删除消息,直到我的代码中的行,即“c.ack(delivery_info.delivery_tag)”被执行。下面是我的代码

请帮助我理解为什么即使“c.ack(delivery_info.delivery_tag)”行没有执行,rabbitMQ 也会从队列中删除消息。

0 投票
1 回答
1967 浏览

ruby-on-rails - Rspec 3存根类变量

任何人都知道,我如何存根类变量初始化?

我定义

用于限制连接数,但现在我必须对其进行测试,并且当我尝试以一般方式存根时,例如

它不起作用。@@变量提前初始化。

另外,我可以重新定义它:

但它不适合我,因为我必须不允许创建到 AMQP 的连接

解决

我不知道该怎么做,所以我使用了 bunny-mock,它帮助了我

0 投票
1 回答
64 浏览

ruby - RabbitMQ 中的否定 unack

谁可以给我解释一下这个?

在此处输入图像描述

堆栈是:RabbitMQ、Sneakers、Ruby、Bunny

0 投票
1 回答
695 浏览

ruby-on-rails - 我们如何使用 Bunny gem 和 RabbitMQ 设置延迟排队?

我已经设置了 RabbitMQ,并且能够立即从 Rails 应用程序中发布和使用带有 bunny gem 的消息。在发布到 RabbitMQ 交换器时,我们如何以每条消息的预定义延迟时间实现延迟排队?

0 投票
1 回答
275 浏览

ruby - RabbitMQ 不断堆叠未确认的消息,尽管它们被拒绝或确认

我下面的 Ruby 代码处理 RabbitMQ 事件。我正在为 Ruby 和运动鞋 gem使用 Bunny 。尽管我认为我正在对所有可能的事件采取行动,但本地频道中充斥着未确认的消息。每次日志显示如下内容时都会发生这种情况:

这是我的 Ruby 代码:

我的reject!大概有什么问题?有点卡住了几个小时。我试图改变所有reject!ack!但似乎没有任何帮助。

也许我使用rescue了错误的方式?

0 投票
1 回答
339 浏览

ruby-on-rails - RabbitMQ 订阅限制预取的消息数量

我正在使用ruby​​ on railsrabbitmq之间进行通信。microservices每个服务订阅一个topic. 所有服务都scaled根据需要作为多个实例运行。

在订阅期间从队列进入bunny状态。这使得其他扩展实例只是空闲,因为状态中没有消息。all the messagesunackedready

有没有办法限制订阅可以获取的消息数量,以便其他实例可以从队列中获取剩余的消息。

0 投票
1 回答
348 浏览

ruby-on-rails - 是否可以从延迟作业调用 Bunny::Exchange 发布?

我有一个 Rails 应用程序,有时使用 gem“Bunny”将消息发布到 RabbitMQ 队列。这是设置:

然后我可以在应用程序中的任何地方调用:

如果我从应用程序或控制台调用它,这很好用,但如果从 DelayedJob 作业调用它就不起作用。没有引发异常,但只是没有发送消息。

尝试单例:

看起来像$mq_channelDelayedJob 找不到全局变量,所以我创建了一个单例模型来存储它:

我从我的初始化程序调用设置:

但这也行不通。作业终止且没有错误,但没有发布任何内容。

知道怎么做吗?从 DJ 之类的后台工作人员向 RabbitMQ 发布消息应该很常见。

0 投票
0 回答
595 浏览

ruby-on-rails - RabbitMQ 不使用循环向消费者发送消息

我有一个充当生产者的 Ruby 应用程序,如下所示:

我还有一个消费者应用程序,它产生 2 个工人(消费者)

它工作得很好,但我两次收到相同的消息(在两个消费者身上)。我认为默认情况下,rabbitmq 会使用循环方式将消息发送给消费者,但即使使用预取选项,我也会收到 2 条消息。

我错过了什么吗?