Class ProcessDistributorImpl
- java.lang.Object
-
- fr.gouv.vitam.processing.distributor.core.ProcessDistributorImpl
-
- All Implemented Interfaces:
ProcessDistributor,java.lang.AutoCloseable
public class ProcessDistributorImpl extends java.lang.Object implements ProcessDistributor
The Process Distributor call the workers and intercept the response for manage a post actions stepTODO P1: - handle listing of items through a limited arraylist (memory) and through iterative (async) listing from Workspace - handle result in FATAL mode from one distributed item to stop the distribution in FATAL mode (do not continue) - try to handle distribution on 1 or on many as the same loop (so using a default arrayList of 1) - handle error level using order in enum in ProcessResponse.getGlobalProcessStatusCode instead of manually comparing:
for (final EngineResponse response : responses) { tempStatusCode = response.getStatus(); if (statusCode.ordinal() > tempStatusCode.ordinal()) { statusCode = tempStatusCode; } if (statusCode.ordinal() > StatusCode.KO.ordinal()) { break; } }
-
-
Field Summary
-
Fields inherited from interface fr.gouv.vitam.processing.distributor.api.ProcessDistributor
DISTRIBUTOR_INDEX, ELEMENT_UNITS, EXCEPTION_MESSAGE, JSON_EXTENSION, NOLEVEL, OBJECTS_LIST_EMPTY
-
-
Constructor Summary
Constructors Constructor Description ProcessDistributorImpl(IWorkerManager workerManager, ServerConfiguration serverConfiguration)Empty constructorProcessDistributorImpl(IWorkerManager workerManager, ServerConfiguration serverConfiguration, ProcessDataAccess processDataAccess, ProcessDataManagement processDataManagement, WorkspaceClientFactory workspaceClientFactory, WorkerClientFactory workerClientFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancancel(java.lang.String operationId)Get the current step if the processWorkflow corresponding to the operationId and update his pauseCancelAction parameter to be PauseOrCancelAction.ACTION_CANCEL WorkerTask check this parameter and can cancel the not yet running tasksvoidclose()ItemStatusdistribute(WorkerParameters workParams, Step step, java.lang.String operationId, PauseRecover pauseRecover)Temporary method for distribution supporting multi-listProcessDataAccessgetProcessDataAccess()ProcessDataManagementgetProcessDataManagement()WorkerClientFactorygetWorkerClientFactory()IWorkerManagergetWorkerManager()WorkspaceClientFactorygetWorkspaceClientFactory()booleanpause(java.lang.String operationId)Get the current step of the processWorkflow corresponding to the operationId and update his pauseCancelAction parameter to be PauseOrCancelAction.ACTION_PAUSE WorkerTask check this parameter and can pause the not yet running tasks
-
-
-
Constructor Detail
-
ProcessDistributorImpl
public ProcessDistributorImpl(IWorkerManager workerManager, ServerConfiguration serverConfiguration)
Empty constructor- Parameters:
workerManager-serverConfiguration-
-
ProcessDistributorImpl
public ProcessDistributorImpl(IWorkerManager workerManager, ServerConfiguration serverConfiguration, ProcessDataAccess processDataAccess, ProcessDataManagement processDataManagement, WorkspaceClientFactory workspaceClientFactory, WorkerClientFactory workerClientFactory)
-
-
Method Detail
-
pause
public boolean pause(java.lang.String operationId)
Description copied from interface:ProcessDistributorGet the current step of the processWorkflow corresponding to the operationId and update his pauseCancelAction parameter to be PauseOrCancelAction.ACTION_PAUSE WorkerTask check this parameter and can pause the not yet running tasks- Specified by:
pausein interfaceProcessDistributor- Parameters:
operationId- concerning operation id- Returns:
- true if pause applied, false else
-
cancel
public boolean cancel(java.lang.String operationId)
Description copied from interface:ProcessDistributorGet the current step if the processWorkflow corresponding to the operationId and update his pauseCancelAction parameter to be PauseOrCancelAction.ACTION_CANCEL WorkerTask check this parameter and can cancel the not yet running tasks- Specified by:
cancelin interfaceProcessDistributor- Parameters:
operationId- concerning operation id- Returns:
- true if pause applied, false else
-
distribute
public ItemStatus distribute(WorkerParameters workParams, Step step, java.lang.String operationId, PauseRecover pauseRecover)
Temporary method for distribution supporting multi-list- Specified by:
distributein interfaceProcessDistributor- Parameters:
workParams- of typeWorkerParametersstep- the execution stepoperationId- the operation idpauseRecover- prevent recover from pause action- Returns:
- the final step status
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable
-
getProcessDataAccess
public ProcessDataAccess getProcessDataAccess()
- Specified by:
getProcessDataAccessin interfaceProcessDistributor
-
getProcessDataManagement
public ProcessDataManagement getProcessDataManagement()
- Specified by:
getProcessDataManagementin interfaceProcessDistributor
-
getWorkerManager
public IWorkerManager getWorkerManager()
- Specified by:
getWorkerManagerin interfaceProcessDistributor
-
getWorkspaceClientFactory
public WorkspaceClientFactory getWorkspaceClientFactory()
- Specified by:
getWorkspaceClientFactoryin interfaceProcessDistributor
-
getWorkerClientFactory
public WorkerClientFactory getWorkerClientFactory()
- Specified by:
getWorkerClientFactoryin interfaceProcessDistributor
-
-