@Override public void onEvent(final T event, final long sequence, final boolean endOfBatch) throws Exception { for (final EventHandler<T> eventHandler : eventHandlers) { eventHandler.onEvent(event, sequence, endOfBatch); } }
public void asyncConsumeBatchToCursor(EventHandler<Object> handler) throws AlertException, InterruptedException, TimeoutException { List<Object> batch = getConsumeBatch(); if (batch == null) return; for (int i = 0; i < batch.size(); i++) { try { handler.onEvent(batch.get(i), 0, i == (batch.size() - 1)); } catch (Exception e) { LOG.error(e.getMessage(), e); throw new RuntimeException(e); } } }
for (int i = 0; i < cache.size(); i++) { try { handler.onEvent(cache.get(i), 0, i == (cache.size() - 1)); } catch (Exception e) { LOG.error(e.getMessage(), e);
public void consumeBatchToCursor(EventHandler<Object> handler) throws AlertException, InterruptedException, TimeoutException { long endCursor = getAvailableConsumeCursor(); long curr = _consumer.get() + 1; for (; curr <= endCursor; curr++) { try { MutableObject mo = _buffer.get(curr); Object o = mo.o; mo.setObject(null); handler.onEvent(o, curr, curr == endCursor); } catch (InterruptedException e) { LOG.error(e.getMessage(), e); return; } catch (Exception e) { LOG.error(e.getMessage(), e); throw new RuntimeException(e); } } // TODO: only set this if the consumer cursor has changed? _consumer.set(endCursor); }
eventHandler.onEvent(event, nextSequence, nextSequence == availableSequence); nextSequence++;
@Override public void onEvent(final T event, final long sequence, final boolean endOfBatch) throws Exception { for (final EventHandler<T> eventHandler : eventHandlers) { eventHandler.onEvent(event, sequence, endOfBatch); } }
@Override public void onEvent(final T event, final long sequence, final boolean endOfBatch) throws Exception { for (final EventHandler<T> eventHandler : eventHandlers) { eventHandler.onEvent(event, sequence, endOfBatch); } }
@Override public void onEvent(Reference<T> ref) throws Exception { eventHandler.onEvent(ref, -1, false); } };
@Override public void onEvent(final T event, final long sequence, final boolean endOfBatch) throws Exception { for (final EventHandler<T> eventHandler : eventHandlers) { eventHandler.onEvent(event, sequence, endOfBatch); } }
@Override public void onEvent(final T event, final long sequence, final boolean endOfBatch) throws Exception { for (final EventHandler<T> eventHandler : eventHandlers) { eventHandler.onEvent(event, sequence, endOfBatch); } }
eventHandler.onEvent(event, nextSequence, nextSequence == availableSequence); nextSequence++;
@Override public void onMessage(ExecutionReport message, SessionID sessionID) throws FieldNotFound, UnsupportedMessageType, IncorrectTagValue { try { executionReportEventHandler.onEvent(message, 0L, true); } catch (Exception e) { logger.error(e.getMessage(), e); } }
private void consumeBatchToCursor(long cursor, EventHandler<Object> handler) { for(long curr = _consumer.get() + 1; curr <= cursor; curr++) { try { MutableObject mo = _buffer.get(curr); Object o = mo.o; mo.setObject(null); if(o==FLUSH_CACHE) { Object c = null; while(true) { c = _cache.poll(); if(c==null) break; else handler.onEvent(c, curr, true); } } else if(o==INTERRUPT) { throw new InterruptedException("Disruptor processing interrupted"); } else { handler.onEvent(o, curr, curr == cursor); } } catch (Exception e) { throw new RuntimeException(e); } } //TODO: only set this if the consumer cursor has changed? _consumer.set(cursor); }
private void consumeBatchToCursor(long cursor, EventHandler<Object> handler) { for (long curr = _consumer.get() + 1; curr <= cursor; curr++) { try { AtomicReference<Object> mo = _buffer.get(curr); Object o = mo.getAndSet(null); if (o == INTERRUPT) { throw new InterruptedException("Disruptor processing interrupted"); } else if (o == null) { LOG.error("NULL found in {}:{}", this.getName(), cursor); } else { _metrics.notifyDepartures(getTupleCount(o)); handler.onEvent(o, curr, curr == cursor); if (_enableBackpressure && _cb != null && (_metrics.writePos() - curr + _overflowCount.get()) <= _lowWaterMark) { try { if (_throttleOn) { _throttleOn = false; _cb.lowWaterMark(); } } catch (Exception e) { throw new RuntimeException("Exception during calling lowWaterMark callback!"); } } } } catch (Exception e) { throw new RuntimeException(e); } } _consumer.set(cursor); }
eventHandler.onEvent(event, nextSequence, nextSequence == availableSequence); nextSequence++;
eventHandler.onEvent(event, nextSequence, nextSequence == availableSequence); nextSequence++;
eventHandler.onEvent(event, nextSequence, nextSequence == availableSequence); nextSequence++;