class Event {
private String data;
public void setData(String data) {
this.data = data;
}
public String getData() {
return data;
}
}
class EventHandler implements EventHandler<Event> {
@Override
public void onEvent(Event event, long sequence, boolean endOfBatch) {
System.out.println("Processing event: " + event.getData());
}
}
int bufferSize = 1024;
Disruptor<Event> disruptor = new Disruptor<>(Event::new, bufferSize, Executors.defaultThreadFactory());
disruptor.handleEventsWith(new EventHandler());
disruptor.start();
RingBuffer<Event> ringBuffer = disruptor.getRingBuffer();
EventProducer producer = new EventProducer(ringBuffer);
ExecutorService executor = Executors.newFixedThreadPool(1);
executor.submit(producer);
disruptor.shutdown();
executor.shutdown();