问题标签 [rmq]

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 回答
174 浏览

arrays - 为什么/何时我们使用段树进行范围最小查询?

我读到,为了使用段树实现范围最小查询,预处理需要 O(n) 时间,为每个查询找到解决方案需要 O(log(n)) 时间。它也需要额外的空间。

相反,如果我们简单地为数组的某个子数组找到最小值,我们可以在 O(n) 中找到它。

那么,我们为什么要使用段树实现呢?物流有哪些?
是关于常数因子吗?
当段树特别有用时,是否存在特殊情况?

0 投票
0 回答
89 浏览

java - 如何处理 RMQ 连接丢失?

我们在 Scala 中使用 Java RMQ 客户端,我们在 DEV 环境中遇到了一些问题。我们设置了这个后备策略:

以类似的方式,我添加了通道连接关闭侦听器。

所以我们使用了 2 种策略(并通过配置进行修改)

  • 失败退出
  • 失败重试

我设置了退出失败策略,有时它可以正常工作。发生错误时,我在日志中看到这一行终止使用 RMQ 使用者的进程已关闭并正确重新启动服务(kubernetes pod 已关闭并再次自动启动)。我禁用了 RMQ 自动恢复,因为它根本不起作用。

问题是有时有些队列没有消费者,消息正在排队并挂起,但日志中没有此错误消息。真的很难测试它,因为我不知道我们的DEV环境发生了什么情况。

会发生什么?有没有更好的方法来处理连接丢失,或者更准确地说 - 处理消费者以某种方式从队列中分离出来的场景?

提前致谢,

阿米尔

0 投票
1 回答
116 浏览

c++ - 反转循环移位序列

这是我很难解决的问题。

给定一个密文 Y 和从字符串 Z 产生 Y 的循环移位序列,带有参数 (i, j, k) 的移位适用于子字符串 Z[i..j](从第 i 个到 j- th 字符,包括)并循环向右旋转 k 次。字符串字符从 1 开始编号。鉴于上述信息,您的任务是猜测初始明文 X。

输入:

第一行包含密文,它是一个由 N 个小写英文字母(1 ≤ N ≤ 50000)组成的非空字符串。第二行包含班次数 M (1 ≤ M ≤ 50000)。以下 M 行描述了循环移位的序列(按照它们应用于明文的顺序)。每个移位由三个参数 i、j、k (1 ≤ i < j ≤ N, 1 ≤ k ≤ j - i) 描述。

输入示例:

作为输出,您应该提供解密的文本(例如“goodluck”)。

显而易见的方法是尝试从最后一个班次开始反转每个班次。这种方法似乎不省时。但是,我无法想出如何以其他方式做到这一点的任何想法,因此不胜感激。

我附上我的代码:

0 投票
0 回答
127 浏览

java - 最大 RabbitMQ 预取计数

RabbitMQ 3.8.7 二郎 23.0.2

我正在使用 Java 客户端来配置我的 RabbitMQ 队列。

在尝试使用channel.basicQosAPI 将 Prefetch 计数设置为 132,000 时,在 RabbitMQ GUI 的“消费者”部分中,它似乎始终设置为 65,535。

这可能是预取计数的最大值吗?这没有任何意义。

0 投票
0 回答
21 浏览

algorithm - 使用扫除法和分治法的面积最大查询

该查询是关于在给定的矩形区域中查找具有最大值的点。听说这可以通过使用垂直线和dnc来解决。有人对这个问题有想法吗?

0 投票
1 回答
76 浏览

arrays - 增长数组的范围最小查询

我有一个数组 A[0..n],我需要在区间 A[k₀..n] 中找到最小值。基于此,数组扩展为值 A[n+1],我需要 A[k₁..n+1] 中的最小值。再次用一些 A[n+2] 扩展数组并查询 A[k₂..n+2] 中的最小值。有没有办法在 O(1) 时间内完成每个查询(经过一些预处理)?

与这个早先的问题:Range minimum queries when array is dynamic相比,不同的是,查询区间从不同的位置 k₀、k₁、k₂、...开始,查询区间的末尾始终是数组的最右端。在我的应用程序中,我从一个空数组 (n=0) 开始,因此预处理可能很简单。如果这有帮助,在我的应用程序中,扩展中使用的新值始终为 1+(最后一个查询返回的最小值)。但是位置 k₀, k₁, k₂, ... 取决于数组外部的数据。

0 投票
0 回答
67 浏览

node.js - 使用 NodeJS 从 RabbitMQ 队列中读取所有消息

我有一个接收消息的队列,需要等待达到 1000 条消息才能处理它们。

所以我需要定期检查消息数量,当达到 1000 条时,从队列中读取所有消息。

但是根据我在文档中找到的内容,我只能设置一个回调函数,以便在消息到达时调用。

你知道我如何在 NodeJS 中做到这一点吗?

0 投票
0 回答
33 浏览

node.js - 定义在 RabbitMQ 中删除消息时触发的 nodeJS 回调

我在队列中定义了一个 max-length-bytes 以在超过长度时丢弃消息。

问题是我需要知道消息何时从我的 NodeJs 程序中删除。

你知道是否有可能设置一个回调函数在消息被丢弃时调用?

0 投票
1 回答
159 浏览

algorithm - 计算范围数 [L; R] 最大值和最小值之差是偶数

给定一个数组 n 个元素 (n <= 10^5) 计算范围数 [L; R] (L <= R) 的最大值和最小值之差是偶数。

例如,n = 5
a[] = {4, 5, 2, 6, 3}
答案是 11:[1;1], [1;4], [1;5], [2;2], [2;4], [2;5], [3;3], [3;4], [3;5], [4;4], [5;5] 时间限制为 1 秒

如果 n <= 1000,O(n^2) 中的 natvie 算法就可以了。我认为我们可以通过使用堆栈或双端队列来改进这种方法。但这太难了。

有什么有效的方法吗?

0 投票
2 回答
179 浏览

java - 使用 AsyncRabbitTemplate::sendAndReceive 时回复超时 - RabbitMQ

我最近从在我的 Spring Boot 应用程序中使用标准 Rabbit 模板更改为使用 Async Rabbit 模板。在这个过程中,我从标准send方法切换到使用sendAndReceive方法。

进行此更改似乎不会影响将消息发布到 RabbitMQ,但是我现在在发送消息时确实看到如下堆栈跟踪:

我已经尝试修改各种设置,包括回复和接收超时,但所有这些更改都是接收上述错误所需的时间。我也尝试过设置useDirectReplyToContainertrue以及设置useChannelForCorrelationtrue.
我已经设法使用在 docker 中运行的 RabbitMQ 代理在下面包含的主要方法中重新创建了该问题。

我确信我只是缺少一个配置选项,但会提供任何帮助。

谢谢。:)