public class Event { private String data; public void setData(String data) { this.data = data; } public String getData() { return data; } } public class EventHandler implements EventHandler<Event> { @Override public void onEvent(Event event, long sequence, boolean endOfBatch) throws Exception { System.out.println("Processed event: " + event.getData()); } } public class Main { public static void main(String[] args) { RingBuffer<Event> ringBuffer = RingBuffer.createSingleProducer(Event::new, 1024); EventHandler<Event> eventHandler = new EventHandler(); BatchEventProcessor<Event> batchEventProcessor = new BatchEventProcessor<>(ringBuffer, ringBuffer.newBarrier(), eventHandler); Executor executor = Executors.newSingleThreadExecutor(); executor.execute(batchEventProcessor); for (long i = 0; i < 10; i++) { long sequence = ringBuffer.next(); Event event = ringBuffer.get(sequence); event.setData("Event " + i); ringBuffer.publish(sequence); } } }


上一篇:
下一篇:
切换中文