如果在使用next()
或publish()
时由于某些其他原因或在可接受的时间内未调用Disruptor
和publish()
之间的异常,会发生什么情况?
处理此类案件的恢复/超时技术是什么?
答案 0 :(得分:2)
在Disruptor
内,自我调用发布在finally块中,以确保始终调用它们。例如Disruptor.java#1017-1027
由于发布标记了事件处理程序可用的插槽,因此它们将停止,直到发布调用发生。
恢复策略不会破坏它;)在您准备好使用它并始终调用发布之前,没有必要或要求声明您的插槽。如果您不想发布您声称为该插槽的数据,则可能需要某种错误标记才能进入插槽。