/** * Receive a job from the layer above, store it for later retries and pass * it down to the next layer */ @Override public void receiveJob(DispatchJobEvent jobEvent) { addJobToStateList(jobEvent); getBelow().receiveJob(jobEvent); }
@Override public void receiveResultCompletion(DispatchCompletionEvent completionEvent) { DispatchLayer<?> above = dispatchStack.layerAbove(this); if (above != null) above.receiveResultCompletion(completionEvent); }
@Override public void receiveJobQueue(DispatchJobQueueEvent jobQueueEvent) { DispatchLayer<?> below = dispatchStack.layerBelow(this); if (below != null) below.receiveJobQueue(jobQueueEvent); }
/** * If an error occurs we can either handle the error or send it to the layer * above for further processing. */ @Override public void receiveError(DispatchErrorEvent errorEvent) { String owningProcess = errorEvent.getOwningProcess(); for (JobState rs : getJobsCopy(owningProcess)) if (identicalIndex(rs.jobEvent.getIndex(), errorEvent.getIndex())) { boolean handled = rs.handleError(); if (!handled) { removeJob(owningProcess, rs); getAbove().receiveError(errorEvent); return; } } }
/** * If we see a result with an index matching one of those in the current * retry state we can safely forget that state object */ @Override public void receiveResult(DispatchResultEvent j) { forget(j.getOwningProcess(), j.getIndex()); getAbove().receiveResult(j); }
/** * If we see a completion event with an index matching one of those in the * current retry state we can safely forget that state object */ @Override public void receiveResultCompletion(DispatchCompletionEvent c) { forget(c.getOwningProcess(), c.getIndex()); getAbove().receiveResultCompletion(c); }
@Override public void receiveResultCompletion(DispatchCompletionEvent completionEvent) { System.out.println(" " + new Completion(completionEvent.getOwningProcess(), completionEvent.getIndex(), completionEvent .getContext())); getAbove().receiveResultCompletion(completionEvent); }
@Override public void receiveResult(DispatchResultEvent resultEvent) { DispatchLayer<?> above = dispatchStack.layerAbove(this); if (above != null) above.receiveResult(resultEvent); }
@Override public void receiveError(DispatchErrorEvent errorEvent) { DispatchLayer<?> above = dispatchStack.layerAbove(this); if (above != null) above.receiveError(errorEvent); }
@Override public void receiveJob(DispatchJobEvent jobEvent) { DispatchLayer<?> below = dispatchStack.layerBelow(this); if (below != null) below.receiveJob(jobEvent); }
public Processor getProcessor() { if (dispatchStack == null) return null; return dispatchStack.getProcessor(); } }
@Override public void run() { currentRetryCount++; getBelow().receiveJob(jobEvent); } };
@Override public void receiveJobQueue(DispatchJobQueueEvent jobQueueEvent) { super.receiveJobQueue(jobQueueEvent); }
@Override public void receiveResultCompletion(DispatchCompletionEvent completionEvent) { super.receiveResultCompletion(completionEvent); }
protected final DispatchLayer<?> getAbove() { return dispatchStack.layerAbove(this); }
protected final DispatchLayer<?> getBelow() { return dispatchStack.layerBelow(this); }
@Override public boolean dispatchLayerExists(URI dispatchLayerType) { for (DispatchLayerFactory dispatchLayerFactory : dispatchLayerFactories) if (dispatchLayerFactory.getDispatchLayerTypes().contains( dispatchLayerType)) return true; return false; }
@Override public JsonNode getDispatchLayerConfigurationSchema(URI dispatchLayerType) throws DispatchLayerNotFoundException { DispatchLayerFactory factory = getDispatchLayerFactory(dispatchLayerType); return factory.getDispatchLayerConfigurationSchema(dispatchLayerType); }
@Override public Processor getProcessor() { if (dispatchStack == null) return null; return dispatchStack.getProcessor(); } }
@Override public void receiveJobQueue(DispatchJobQueueEvent jobQueueEvent) { super.receiveJobQueue(jobQueueEvent); }