package ru.hflabs.rcd.service.task; import ru.hflabs.rcd.RoleNames; import ru.hflabs.rcd.model.task.TaskDescriptor; import ru.hflabs.rcd.model.task.TaskExecution; import ru.hflabs.rcd.model.task.TaskResult; import ru.hflabs.rcd.service.IFindService; import javax.annotation.security.RolesAllowed; import java.util.Collection; import java.util.Set; /** * Интерфейс <class>ITaskLauncher</class> декларирует методы исполнения задач * * @see TaskResult */ public interface ITaskLauncher extends IFindService<TaskExecution> { /** * @return Возвращает коллекцию текущих выполняемых задач */ @RolesAllowed(RoleNames.OPERATOR) Collection<TaskExecution> findExecuted(); /** * Отправляет задачу в очередь на выполнение * * @param descriptorId идентификатор параметров задачи * @return Возвращает задачу поставленную в очередь или предыдущую выполняемую задачу */ @RolesAllowed(RoleNames.ADMINISTRATOR) TaskExecution submitAsyncTask(String descriptorId); /** * Отправляет задачу в очередь на выполнение * * @param descriptor параметры задачи * @return Возвращает задачу поставленную в очередь или предыдущую выполняемую задачу */ @RolesAllowed(RoleNames.ADMINISTRATOR) TaskExecution submitAsyncTask(TaskDescriptor descriptor); /** * Отправляет задачу в очередь на выполнение и дожидается ее результата * * @param descriptor параметры задачи * @return Возвращает выполненную задачу */ @RolesAllowed(RoleNames.ADMINISTRATOR) TaskResult submitSyncTask(TaskDescriptor descriptor); /** * Выполняет отмену выполняемых задач * * @param resultIDs идентификаторы выполняемых задачи * @return Возвращает отмененные задачи */ @RolesAllowed(RoleNames.ADMINISTRATOR) Collection<TaskExecution> cancelTask(Set<String> resultIDs); }