public class ProcessDistributorImpl extends Object implements ProcessDistributor
TODO 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;
}
}
DISTRIBUTOR_INDEX, ELEMENT_UNITS, EXCEPTION_MESSAGE, JSON_EXTENSION, NOLEVEL, OBJECTS_LIST_EMPTY, WORKER_CALL_EXCEPTION
Constructor and Description |
---|
ProcessDistributorImpl(IWorkerManager workerManager,
ServerConfiguration serverConfiguration)
Empty constructor
|
ProcessDistributorImpl(IWorkerManager workerManager,
ServerConfiguration serverConfiguration,
ProcessDataAccess processDataAccess,
ProcessDataManagement processDataManagement,
WorkspaceClientFactory workspaceClientFactory,
WorkerClientFactory workerClientFactory) |
Modifier and Type | Method and Description |
---|---|
boolean |
cancel(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 tasks
|
void |
close() |
ItemStatus |
distribute(WorkerParameters workParams,
Step step,
String operationId,
PauseRecover pauseRecover)
Temporary method for distribution supporting multi-list
|
ProcessDataAccess |
getProcessDataAccess() |
ProcessDataManagement |
getProcessDataManagement() |
WorkerClientFactory |
getWorkerClientFactory() |
IWorkerManager |
getWorkerManager() |
WorkspaceClientFactory |
getWorkspaceClientFactory() |
boolean |
pause(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
|
public ProcessDistributorImpl(IWorkerManager workerManager, ServerConfiguration serverConfiguration)
workerManager
- serverConfiguration
- public ProcessDistributorImpl(IWorkerManager workerManager, ServerConfiguration serverConfiguration, ProcessDataAccess processDataAccess, ProcessDataManagement processDataManagement, WorkspaceClientFactory workspaceClientFactory, WorkerClientFactory workerClientFactory)
public boolean pause(String operationId)
ProcessDistributor
pause
in interface ProcessDistributor
operationId
- concerning operation idpublic boolean cancel(String operationId)
ProcessDistributor
cancel
in interface ProcessDistributor
operationId
- concerning operation idpublic ItemStatus distribute(WorkerParameters workParams, Step step, String operationId, PauseRecover pauseRecover)
distribute
in interface ProcessDistributor
workParams
- of type WorkerParameters
step
- the execution stepoperationId
- the operation idpauseRecover
- prevent recover from pause actionpublic void close()
close
in interface AutoCloseable
public ProcessDataAccess getProcessDataAccess()
getProcessDataAccess
in interface ProcessDistributor
public ProcessDataManagement getProcessDataManagement()
getProcessDataManagement
in interface ProcessDistributor
public IWorkerManager getWorkerManager()
getWorkerManager
in interface ProcessDistributor
public WorkspaceClientFactory getWorkspaceClientFactory()
getWorkspaceClientFactory
in interface ProcessDistributor
public WorkerClientFactory getWorkerClientFactory()
getWorkerClientFactory
in interface ProcessDistributor
Copyright © 2019 Vitam. All rights reserved.