致LMAX Disruptor的开发人员/用户http://code.google.com/p/disruptor/:
我的问题:有人能建议如何将超时函数应用于Disruptor吗?例如,使用EventHandler?
以下是我工作中出现的一个场景:
- 发件箱-通过网络发送到服务器的邮件
- 收件箱-从服务器接收的ACK消息
- ACK处理程序-将发件箱消息标记为已确认
- 超时处理程序-将发件箱消息标记为NACKed(非常需要,但它在哪里适合Disruptor设计?)
有没有人持相同意见?或者有人能指出为什么没有必要。我希望接下来的辩论将是简短的。
谢谢。
要澄清超时处理程序在一段时间后无法传递消息时是否会"触发"?
它使用distributor的方式是,您有一个用于入站的环形缓冲区和一个用于出站消息的环形缓冲区时。。。如果电子邮件进入,请使用适当的事件将其放入入站环形缓冲区。然后处理消息(即解码、分析、日志、存储),并通过将其放入出站环形缓冲区将其发送到另一个系统。。。另一个处理程序接收消息并将其存储到数据库中,或者使用smtp将其发送到另一个服务器。。。如果发生错误/超时等,则在入站环形缓冲区中创建一个事件,用信号通知错误(NACK)并处理此消息。这有道理吗?!?