问题标签 [queue]

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

architecture - 使用 RabbitMQ 排队的架构评论?

我基本上需要一种能够对消息进行排队的排队技术。这些消息随后将作为 SMS 文本传输。RabbitMQ 似乎很适合在我掩盖了 api 之后。

我目前的架构计划:

  1. 客户端在 RabbitMQ 中排队消息。
  2. 另一个守护进程将从 RabbitMQ 读取消息并将这些消息发送到第 3 方 SMS 网关。守护程序应该能够产生多个侦听器线程。
  3. 我计划使用 Ubuntu Hardy 在 slicehost.com 上托管所有内容。

你预见到这个设计有什么问题吗?由于我对 Erlang 有粗略的了解,因此我不知道如何在生产环境中运行它。如果您对 Erlang 或 RabbitMQ 有任何经验,我想听听您的战争故事。

0 投票
2 回答
4292 浏览

java - 大小 = 1 的 Java BlockingQueue?

基本上我想要的是一个 size=1 的 BlockingQueue。我有一个“侦听器”线程,它只是等待、阻塞,直到一个对象被放入队列,然后检索它——以及一个“生产者”线程,它实际上将对象放入队列。

我可以用一些同步块和 BlockingQueue 实现来实现这一点,但这似乎有点矫枉过正。有没有更好、更简单的方法来做我想做的事?

示例界面:

0 投票
8 回答
70176 浏览

c - 如何在 C 中实现循环列表(环形缓冲区)?

如何实现一个循环列表,当它已满时覆盖最旧的条目?

对于一点背景,我想在 GWT 中使用循环列表;所以使用 3rd 方库不是我想要的。

0 投票
3 回答
1100 浏览

sql - cron 脚本充当队列或 cron 队列?

我打赌有人已经解决了这个问题,也许我使用了错误的谷歌搜索词来告诉我答案,但这是我的情况。

我有一个要运行的脚本,但我希望它只在预定时运行,并且一次只运行一个。(不能同时运行脚本)

现在棘手的部分是说我有一个名为“myhappyschedule”的表,其中包含我需要的数据和预定的时间。这张表甚至可以同时有多个预定时间,每个都运行这个脚本。所以基本上我需要一个每次脚本触发的队列,他们都需要等待每个脚本完成。(有时这可能只需要一分钟,脚本有时会执行很多分钟)

我正在考虑做的是制作一个脚本,每 5 分钟检查一次 myhappyschedule 并收集那些安排好的,将它们放入队列中,另一个脚本可以按顺序执行队列中的每个“作业”或事件。这一切听起来很混乱。

为了让它更长 - 我应该说我允许用户在 myhappyschedule 中安排事情而不是编辑 crontab。

关于这个还能做什么?文件锁和脚本调用脚本?

0 投票
2 回答
2578 浏览

queue - 替换 jms 队列中的消息

我正在使用 activemq 在不同进程之间传递请求。在某些情况下,我在队列中有多个重复的消息(它们是请求)。我想只有一个。有没有办法发送一条消息,它将替换具有相似属性的旧消息?如果没有,有没有办法检查队列并检查具有特定属性的消息(在这种情况下,如果存在旧消息,我将不会发送新消息)。

澄清(基于戴夫的回答):我实际上是在尝试确保队列上没有任何重复的消息,以减少消费者收到消息时发生的处理量。因此,我想替换一条消息,甚至不把它放在队列中。

谢谢。

0 投票
5 回答
8118 浏览

database - 消息系统中针对表的队列

在实际生产环境中,我一直在体验消息传递系统的优点和缺点,我必须承认,一个组织良好的表或表模式每次都比任何其他形式的消息队列都要好,因为:

  1. 数据永久存储在表中。我见过很多 java (jms) 应用程序由于未捕获的异常或其他错误而在途中丢失或消失消息。
  2. 队列往往会被填满。相反,数据库存储实际上是无限的。
  3. 表格很容易访问,而您必须使用深奥的工具从队列中读取。

您对每种方法有何看法?

0 投票
2 回答
4058 浏览

logging - 所有消息的 JMS 队列日志记录/浏览(队列的不可见使用者)(OpenJMS)

你知道,如果有一些很好的方法来浏览/记录 JMS 队列?(我正在使用 OpenJMS)

对于主题,我可以再添加一个消费者,仅此而已,但是对于队列,我还没有完成解决方案。我想记录某些队列和主题中的所有消息,而不会将它们从队列中“弹出”(以便记录器可以浏览“不可见”的队列)。

使用javax.jms.QueueBrowser我可以获得队列的快照,但这似乎没有提供“侦听器解决方案” - 一次又一次地读取无限循环队列上的所有消息,并希望没有消息碰巧被写入并在我的快照之前消耗 - 这听起来不是一个好的解决方案。

另一种选择是为每个“逻辑队列”创建两个队列——一个用于记录器,一个用于实际使用——记录器然后将消息转发到“实际队列”——这可能可行,但可能有更好的解决方案?

因此,如果有人有一个解决方案可以通过“不可见”记录器或其他一些不错的记录解决方案来获取队列中的所有消息,那会很酷。

0 投票
4 回答
1621 浏览

queue - 使用表排队

我需要使用表实现一个队列。业务需求是有一个队列,5-10 个盒子可以访问该队列以获取下一个作业/作业。每天的工作岗位不会超过 5000 个。此外,一批作业应该一次“出队”。

只是想知道我以前没有做过的问题领域和问题是什么。如果有人以前遇到过这个/做过这个,请您指出一个设计/示例实现或需要注意的问题。

谢谢

0 投票
2 回答
2102 浏览

.net-3.5 - 可观察队列?

有没有人编写过实现 INotifyCollectionChanged 的​​ .Net 通用队列版本,或者是否已经在 .Net 框架深处某个地方隐藏了一个?

0 投票
8 回答
1594 浏览

java - 最好的收藏?

我正在阅读日志文件,但并非所有行都希望立即处理。我正在使用队列/缓冲区来存储等待处理的行。

定期扫描此队列以查找特定行 - 当找到它们时,它们会从队列中删除(它们可以在队列中的任何位置)。当没有找到特定的行时,将一行一行地从队列的开头取出进行处理。

因此,队列需要以下内容:

  • 能够调整大小(或给人以印象)
  • 从任何地方删除元素
  • 添加元素(将始终位于队列的末尾)
  • 被快速扫描
  • 根据性能,有一个指向上次扫描位置的指针。

我最初编写代码时对 Java 或 API 几乎没有经验,并且只是使用了 ArrayList,因为我知道它会起作用(不一定是因为它是最佳选择)。

随着越来越多的日志需要处理,它的性能现在变得很差——那么,在这种情况下,您建议使用什么集合?也总是有可能写我自己的。

谢谢