1

致 LMAX Disruptor http://code.google.com/p/disruptor/的开发者/用户:

我的问题:谁能建议一种方法来将超时功能应用于 Disruptor,例如使用 EventHandler?

这是我的工作中出现的一种情况:

  1. 发件箱 - 通过网络发送到服务器的消息
  2. 收件箱 - 从服务器收到的 ACK 消息
  3. ACK Handler - 将发件箱消息标记为 ACKed
  4. 超时处理程序 - 将发件箱消息标记为 NACK(非常需要,但它在哪里可以适合 Disruptor 设计?)

有没有人有相同的看法?或者任何人都可以指出为什么它是不必要的。我希望接下来的辩论会很简短。

谢谢你。

4

1 回答 1

0

为了澄清超时处理程序会在一段时间后无法传递消息时“触发”?

它与中断器一起工作的方式是您有一个用于入站的环形缓冲区和一个用于出站消息的环形缓冲区......所以电子邮件进来,使用适当的事件将其放入入站环形缓冲区。然后处理消息(即解码、分析、记录、存储)并通过将其放入出站环形缓冲区将其发送到另一个系统...另一个处理程序获取消息并将其存储到数据库中或使用 smtp 将其发送到另一个服务器...如果发生错误/超时等,您在入站环形缓冲区中创建一个事件,指示错误(NACK)并处理此消息。那有意义吗?!?

于 2012-04-04T22:05:35.077 回答