2012-01-31 69 views
2

有没有办法延迟企业服务总线中的消息消耗 ,直到X个类似的消息准备好或Y时间已过?企业服务总线(.NET风格) - 一次消费一批消息

我的目标是序列化和消费 聚集多条消息,所以我不打我储存的消息,但对于一个批次来代替。

我目前在玩Rhino ESB。我想知道我对这个ESB或其他任何你知道的选项。

谢谢!

回答

0

在NServiceBus中,您可以在一次调用中发送一批消息。这将如同每条消息单独发送一样进行处理。另一种选择是使用Saga或内置的长时间运行的工作流程。您可以唯一地标识和关联消息状态,并利用一个记录时间的超时机制。

+0

@Adams,我无法实现第一个选项。想象一下,我有几台(几十到几百台)使用REST端点的设备发送我将放入ESB的信息。所以,在任何时候,我都会在发件人中留下一批消息,我知道如果是这样的话,我可以使用NSB或Rhinos ESB发送消息。 理想情况下,我正在考虑允许我在消费者中汇总消息的东西。就像“如果队列中有100个,就只是消费信息”。 我必须检查佐贺的选择。我是ESB新手,你想介绍一下你会怎么做? – 2012-01-31 23:02:41

+0

在我回答之前,您可以详细说明为什么要限制存储空间?如果您正在使用消息传递,则处理现在处于“脱机”状态,即使需要几秒或几分钟也无关紧要。 – 2012-02-01 13:40:27

+0

目标表很庞大,因为写入操作非常昂贵而且要写入的消息数量非常高,所以将其封锁。这张表也被严重查询。 我知道我可以使用我用来写入的锁类型,但我脑海中的_ideal_场景是写批而不是单写。 我正在阅读Ayende的这篇文章http://msdn.microsoft.com/en-us/magazine/ff796225.aspx,我想我可以编写一个消息模块来延迟发送的消息,并强制消息一旦某个数字排队或在一定的时间过后,即被消耗。 – 2012-02-01 14:18:06