protected void addJobToStateList(DispatchJobEvent jobEvent) { List<JobState> stateList = null; stateList = getJobsDefault(jobEvent.getOwningProcess()); synchronized (stateList) { stateList.add(getStateObject(jobEvent)); } }
@Override public void fail(String message, Throwable t, DispatchErrorType errorType) { logger.warn("Failed (" + errorType + ") invoking " + activity + " for job " + jobEvent + ": " + message, t); monMan.deregisterNode( invocationProcessIdentifier); getAbove().receiveError( new DispatchErrorEvent(jobEvent.getOwningProcess(), jobEvent.getIndex(), jobEvent.getContext(), message, t, errorType, activity)); }
@Override public boolean handleError() { currentActivityIndex++; if (currentActivityIndex == jobEvent.getActivities().size()) return false; List<Activity<?>> newActivityList = new ArrayList<>(); newActivityList.add(jobEvent.getActivities().get( currentActivityIndex)); getBelow().receiveJob( new DispatchJobEvent(jobEvent.getOwningProcess(), jobEvent .getIndex(), jobEvent.getContext(), jobEvent .getData(), newActivityList)); return true; } }
/** * If the job contains errors, or collections which contain errors * themselves then bounce a result message with error documents in back up * to the layer above */ @Override public void receiveJob(DispatchJobEvent jobEvent) { Set<T2Reference> errorReferences = new HashSet<>(); for (T2Reference ei : jobEvent.getData().values()) if (ei.containsErrors()) errorReferences.add(ei); if (errorReferences.isEmpty()) // relay the message down... getBelow().receiveJob(jobEvent); else { getState(jobEvent.getOwningProcess()).incrementErrorsReflected(); sendErrorOutput(jobEvent, null, errorReferences); } }
/** * Receive a job from the layer above, store it in the state map then relay * it to the layer below with a modified activity list containing only the * activity at index 0 */ @Override public void receiveJob(DispatchJobEvent jobEvent) { addJobToStateList(jobEvent); List<Activity<?>> newActivityList = new ArrayList<>(); newActivityList.add(jobEvent.getActivities().get(0)); getBelow().receiveJob( new DispatchJobEvent(jobEvent.getOwningProcess(), jobEvent .getIndex(), jobEvent.getContext(), jobEvent.getData(), newActivityList)); }
.getOwningProcess(), newIndex, jobEvent.getContext(), resultMap, streaming); if (!streaming) {
protected void invoke(final DispatchJobEvent jobEvent, final AsynchronousActivity<?> activity) { getNextProcessID()).getOwningProcess(); monMan.registerNode(activity, invocationProcessIdentifier, new HashSet<MonitorableProperty<?>>()); invocationItem.setIdentifier(UUID.randomUUID().toString()); invocationItem.setActivity(activity); invocationItem.setProcessId(jobEvent.getOwningProcess()); invocationItem.setInvocationProcessId(invocationProcessIdentifier); invocationItem.setParentId(parentItem.getIdentifier());
String[] split = jobEvent.getOwningProcess().split(":"); provenanceItem = new ProcessProvenanceItem(); String parentDataflowId = workflowItem.getParentId(); provenanceItem.setFacadeID(split[0]); provenanceItem.setDataflowID(split[1]); provenanceItem.setProcessId(jobEvent.getOwningProcess()); provenanceItem.setIdentifier(uuid()); provenanceItem.setParentId(workflowItem.getIdentifier()); processorProvItem.setWorkflowId(parentDataflowId); processorProvItem.setProcessId(jobEvent .getOwningProcess()); processorProvItem.setIdentifier(uuid()); processorProvItem.setParentId(provenanceItem.getIdentifier()); provenanceItem.setProcessId(jobEvent.getOwningProcess()); getReporter().addProvenanceItem(provenanceItem); getReporter().addProvenanceItem(processorProvItem); inputDataItem.setIdentifier(uuid()); inputDataItem.setParentId(iterationProvItem.getIdentifier()); inputDataItem.setProcessId(jobEvent.getOwningProcess()); inputIndexOwnerList.add(jobEvent.getOwningProcess()); inputDataProvenanceItemMap.put(inputDataItem, inputIndexOwnerList); iterationProvItem.setProcessId(jobEvent.getOwningProcess()); activityProvItem.setProcessId(jobEvent.getOwningProcess());
jobEvent.getOwningProcess(), newIndex, jobEvent .getContext()); getAbove().receiveResultCompletion(c);