@Override public void transitionInto(RunState state) { for (OutputHandler handler : outputHandlers) { try { handler.transitionInto(state); } catch (Throwable e) { LOG.warn("Output handler {} threw", handler, e); throw e; } } } }
storage, eventConsumerFactory.apply(environment, stats), eventConsumerExecutor, fanOutput(outputHandlers), shardedCounter)); final StateManager stateManager = TracingProxy.instrument(StateManager.class, queuedStateManager);
private void postTransition(SequenceEvent sequenceEvent, RunState runState) { // Write event to bigtable try { storage.writeEvent(sequenceEvent); } catch (IOException e) { log.warn("Error writing event {}", sequenceEvent, e); } // Publish event try { eventConsumerExecutor.execute(withMDC(() -> eventConsumer.accept(sequenceEvent, runState))); } catch (Exception e) { log.warn("Error while consuming event {}", sequenceEvent, e); } // Execute output handler(s) outputHandler.transitionInto(runState); }