0

如果在使用之间next()publish()使用时抛出异常,Disruptor或者publish()由于其他原因或在可接受的时间内没有被调用,会发生什么?

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

4

1 回答 1

2

Disruptorit self 调用发布在 finally 块中,以确保它们总是被调用。例如Disruptor.java#1017-1027

由于发布将插槽标记为可供事件处理程序使用,它们将停止直到发布调用发生。

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

于 2013-09-04T23:36:14.737 回答