如果在Disruptor中的next()和publish()之间抛出异常会发生什么?

时间:2013-09-01 15:52:42

标签: java disruptor-pattern

如果在使用next()publish()时由于某些其他原因或在可接受的时间内未调用Disruptorpublish()之间的异常,会发生什么情况?

处理此类案件的恢复/超时技术是什么?

1 个答案:

答案 0 :(得分:2)

Disruptor内,自我调用发布在finally块中,以确保始终调用它们。例如Disruptor.java#1017-1027

由于发布标记了事件处理程序可用的插槽,因此它们将停止,直到发布调用发生。

恢复策略不会破坏它;)在您准备好使用它并始终调用发布之前,没有必要或要求声明您的插槽。如果您不想发布您声称为该插槽的数据,则可能需要某种错误标记才能进入插槽。

相关问题