Java 如何检查事件是否已在disruptor ringbuffer中

Java 如何检查事件是否已在disruptor ringbuffer中,java,disruptor-pattern,Java,Disruptor Pattern,我的disruptor/ringbuffer应用程序有多个生产者和多个工作者。如果事件不在RingBuffer中,则程序将事件放入RingBuffer。对于事件,工作人员根据事件中的字符串id查询远程状态,如果状态已完成,则清除事件 我的问题是,是否有可能以可接受的时间复杂度(例如,小于O(环大小))检查缓冲区中是否已经存在事件 活动内容如下: MyEvent类{ 字符串id;//唯一id。 布尔状态;//如果为true,则worker将删除它。 } 感谢一旦事件准备就绪并在环形缓冲区中可用,它

我的disruptor/ringbuffer应用程序有多个生产者和多个工作者。如果事件不在RingBuffer中,则程序将事件放入RingBuffer。对于事件,工作人员根据事件中的字符串
id
查询远程状态,如果状态已完成,则清除事件

我的问题是,是否有可能以可接受的时间复杂度(例如,小于O(环大小))检查缓冲区中是否已经存在事件

活动内容如下:

MyEvent类{ 字符串id;//唯一id。 布尔状态;//如果为true,则worker将删除它。 }


感谢

一旦事件准备就绪并在环形缓冲区中可用,它将向您提供已注册的工作处理程序实现“onEvent()”方法。对于您的情况,如果要添加条件检查,可以在事件处理程序或工作处理程序中进行。基本上,处理程序是为这种逻辑设计的。时间复杂度将为O(n),因为您需要检查每个事件,一旦检查了事件,您可以根据您的逻辑将其放回相同的环形缓冲区