用于检查是否仍可处理排队消息的模式

时间:2011-05-27 08:56:51

标签: design-patterns message-queue

我们正在构建一个具有多个组件的应用程序,这些组件可能会通过JMS队列相互发送消息。有时可能会在这些队列中出现严重的延迟(由于维护等)。

预计某些消息可能会变得陈旧 - 即它们存在的情况突然发生变化,应该在下次可用的机会中丢弃它们。

是否有用于实施此类“陈旧性检查”的软件模式?有人提到了一个关于死蜗牛模式的事情,但我无法在Google上找到任何引用......

1 个答案:

答案 0 :(得分:0)

这里没有真正的模式,因为这个概念可能过于具体。

但是,简而言之,您需要定义陈旧性,并在您从队列中读取消息时检查它。

根据@ Space_C0wb0y对OP的评论,这可以使用简单的生存时间或其他到期计时器,或者可以在该行的适当位置进行其他更复杂的检查。

然而,实际上,无法将链中的一个单独步骤实现为将消息放回队列,因为在您的方案中,可能会在检查完成后发生延迟。

重申一下,任何这种性质的检查都需要在从队列中读取后的实际处理步骤中的最后一刻。