问题标签 [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.
arrays - 为什么/何时我们使用段树进行范围最小查询?
我读到,为了使用段树实现范围最小查询,预处理需要 O(n) 时间,为每个查询找到解决方案需要 O(log(n)) 时间。它也需要额外的空间。
相反,如果我们简单地为数组的某个子数组找到最小值,我们可以在 O(n) 中找到它。
那么,我们为什么要使用段树实现呢?物流有哪些?
是关于常数因子吗?
当段树特别有用时,是否存在特殊情况?
java - 如何处理 RMQ 连接丢失?
我们在 Scala 中使用 Java RMQ 客户端,我们在 DEV 环境中遇到了一些问题。我们设置了这个后备策略:
以类似的方式,我添加了通道连接关闭侦听器。
所以我们使用了 2 种策略(并通过配置进行修改)
- 失败退出
- 失败重试
我设置了退出失败策略,有时它可以正常工作。发生错误时,我在日志中看到这一行终止使用 RMQ 使用者的进程已关闭并正确重新启动服务(kubernetes pod 已关闭并再次自动启动)。我禁用了 RMQ 自动恢复,因为它根本不起作用。
问题是有时有些队列没有消费者,消息正在排队并挂起,但日志中没有此错误消息。真的很难测试它,因为我不知道我们的DEV环境发生了什么情况。
会发生什么?有没有更好的方法来处理连接丢失,或者更准确地说 - 处理消费者以某种方式从队列中分离出来的场景?
提前致谢,
阿米尔
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”)。
显而易见的方法是尝试从最后一个班次开始反转每个班次。这种方法似乎不省时。但是,我无法想出如何以其他方式做到这一点的任何想法,因此不胜感激。
我附上我的代码:
java - 最大 RabbitMQ 预取计数
RabbitMQ 3.8.7 二郎 23.0.2
我正在使用 Java 客户端来配置我的 RabbitMQ 队列。
在尝试使用channel.basicQos
API 将 Prefetch 计数设置为 132,000 时,在 RabbitMQ GUI 的“消费者”部分中,它似乎始终设置为 65,535。
这可能是预取计数的最大值吗?这没有任何意义。
algorithm - 使用扫除法和分治法的面积最大查询
该查询是关于在给定的矩形区域中查找具有最大值的点。听说这可以通过使用垂直线和dnc来解决。有人对这个问题有想法吗?
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₂, ... 取决于数组外部的数据。
node.js - 使用 NodeJS 从 RabbitMQ 队列中读取所有消息
我有一个接收消息的队列,需要等待达到 1000 条消息才能处理它们。
所以我需要定期检查消息数量,当达到 1000 条时,从队列中读取所有消息。
但是根据我在文档中找到的内容,我只能设置一个回调函数,以便在消息到达时调用。
你知道我如何在 NodeJS 中做到这一点吗?
node.js - 定义在 RabbitMQ 中删除消息时触发的 nodeJS 回调
我在队列中定义了一个 max-length-bytes 以在超过长度时丢弃消息。
问题是我需要知道消息何时从我的 NodeJs 程序中删除。
你知道是否有可能设置一个回调函数在消息被丢弃时调用?
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 算法就可以了。我认为我们可以通过使用堆栈或双端队列来改进这种方法。但这太难了。
有什么有效的方法吗?
java - 使用 AsyncRabbitTemplate::sendAndReceive 时回复超时 - RabbitMQ
我最近从在我的 Spring Boot 应用程序中使用标准 Rabbit 模板更改为使用 Async Rabbit 模板。在这个过程中,我从标准send
方法切换到使用sendAndReceive
方法。
进行此更改似乎不会影响将消息发布到 RabbitMQ,但是我现在在发送消息时确实看到如下堆栈跟踪:
我已经尝试修改各种设置,包括回复和接收超时,但所有这些更改都是接收上述错误所需的时间。我也尝试过设置useDirectReplyToContainer
为true
以及设置useChannelForCorrelation
为true
.
我已经设法使用在 docker 中运行的 RabbitMQ 代理在下面包含的主要方法中重新创建了该问题。
我确信我只是缺少一个配置选项,但会提供任何帮助。
谢谢。:)