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

什么是恢复/超时技术来处理这种情况?

最佳答案

Disruptor中,它要自行发布的发布位于finally块中,以确保始终被调用。例如Disruptor.java#1017-1027

当发布标记该插槽可供事件处理程序使用时,它们将停滞直到发生发布调用。

恢复策略是不破坏它;)那就是在准备使用它并始终致电发布之前,无需声明您的位置即可。如果您不想发布声称拥有该插槽的数据,则可能需要某种错误标记才能放入该插槽。

关于java - 如果Disruptor中的next()和publish()之间引发异常,会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18560152/

10-12 02:45