use of com.axway.ats.agent.core.threading.exceptions.LoadQueueAlreadyExistsException in project ats-framework by Axway.
the class MultiThreadedActionHandler method scheduleActions.
/**
* @param caller
* @param queueName
* @param actionRequests
* @param threadingPattern
* @throws NoSuchComponentException
* @throws NoSuchActionException
* @throws NoCompatibleMethodFoundException
* @throws ThreadingPatternNotSupportedException
* @throws ActionExecutionException
* @throws ActionTaskLoaderException
* @throws LoadQueueAlreadyExistsException
* @throws ParameterDataProviderNotSupportedException
* @throws ParameterDataProviderInitalizationException
*/
public void scheduleActions(String caller, String queueName, int queueId, List<ActionRequest> actionRequests, ThreadingPattern threadingPattern, LoaderDataConfig loaderDataConfig, boolean isUseSynchronizedIterations) throws NoSuchComponentException, NoSuchActionException, NoCompatibleMethodFoundException, ThreadingPatternNotSupportedException, ActionExecutionException, ActionTaskLoaderException, LoadQueueAlreadyExistsException, ParameterDataProviderNotSupportedException, ParameterDataProviderInitalizationException {
//first cleanup the queues
cleanupFinishedQueues();
//check if we already have this queue and it has not finished yet
//if the queue has finished, we can simply discard it
QueueLoader queueLoader = queueLoadersMap.get(queueName);
if (queueLoader != null) {
throw new LoadQueueAlreadyExistsException(queueName, queueLoader.getState());
}
//create the data providers
List<ParameterDataProvider> parameterDataProviders = new ArrayList<ParameterDataProvider>();
for (ParameterDataConfig paramDataConfigs : loaderDataConfig.getParameterConfigurations()) {
parameterDataProviders.add(ParameterDataProviderFactory.createDataProvider(paramDataConfigs));
}
//create the loader
queueLoader = LoadQueueFactory.createLoadQueue(queueName, actionRequests, threadingPattern, parameterDataProviders, listeners);
log.rememberLoadQueueState(queueName, queueId, threadingPattern.getPatternDescription(), threadingPattern.getThreadCount());
//start the queue
queueLoader.scheduleThreads(caller, isUseSynchronizedIterations);
queueLoadersMap.put(queueName, queueLoader);
log.info("Scheduled queue '" + queueName + "'");
}
Aggregations