本文整理了Java中com.evolveum.midpoint.task.api.Task.getExecutionStatus()
方法的一些代码示例,展示了Task.getExecutionStatus()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Task.getExecutionStatus()
方法的具体详情如下:
包路径:com.evolveum.midpoint.task.api.Task
类名称:Task
方法名:getExecutionStatus
[英]Returns execution status.
[中]返回执行状态。
代码示例来源:origin: Evolveum/midpoint
public TaskExecutionStatus getTaskExecutionStatus() {
return task.getExecutionStatus();
}
代码示例来源:origin: Evolveum/midpoint
@Override
public boolean check() throws CommonException {
Task task = taskManager.getTaskWithResult(taskOid, waitResult);
waitResult.summarize();
display("Task execution status = " + task.getExecutionStatus());
return task.getExecutionStatus() == TaskExecutionStatus.CLOSED
|| task.getExecutionStatus() == TaskExecutionStatus.SUSPENDED;
}
@Override
代码示例来源:origin: Evolveum/midpoint
private static void dumpTaskTree(StringBuilder sb, int indent, Task task, OperationResult result) throws SchemaException {
DebugUtil.indentDebugDump(sb, indent);
sb.append(task)
.append(" [").append(task.getExecutionStatus())
.append(", ").append(task.getProgress())
.append(", ").append(task.getNode())
.append("]").append("\n");
List<Task> subtasks = task.listSubtasks(result);
for (Task subtask : subtasks) {
dumpTaskTree(sb, indent + 1, subtask, result);
}
}
}
代码示例来源:origin: Evolveum/midpoint
private Integer closeAllWorkers(Task coordinatorTask, OperationResult result) throws SchemaException {
int count = 0;
List<Task> workers = new ArrayList<>(coordinatorTask.listSubtasks(true, result));
for (Task worker : workers) {
if (worker.getExecutionStatus() != TaskExecutionStatus.CLOSED) {
LOGGER.info("Closing worker because the work is done: {}", worker);
taskManager.suspendAndCloseTaskQuietly(worker, TaskManager.DO_NOT_WAIT, result);
count++;
}
}
return count;
}
代码示例来源:origin: Evolveum/midpoint
private List<Task> checkSubtasksClosed(Task masterTask, OperationResult opResult, TaskRunResult runResult)
throws SchemaException, ExitHandlerException {
List<Task> subtasks = masterTask.listSubtasks(opResult);
List<Task> subtasksNotClosed = subtasks.stream()
.filter(w -> w.getExecutionStatus() != TaskExecutionStatus.CLOSED)
.collect(Collectors.toList());
if (!subtasksNotClosed.isEmpty()) {
LOGGER.warn("Couldn't (re)create/restart subtasks tasks because the following ones are not closed yet: {}", subtasksNotClosed);
opResult.recordFatalError("Couldn't (re)create/restart subtasks because the following ones are not closed yet: " + subtasksNotClosed);
runResult.setRunResultStatus(TaskRunResultStatus.TEMPORARY_ERROR);
throw new ExitHandlerException(runResult);
}
return subtasks;
}
代码示例来源:origin: Evolveum/midpoint
private int closeExecutingWorkers(List<Task> currentWorkers, OperationResult result) {
int count = 0;
for (Task worker : new ArrayList<>(currentWorkers)) {
if (worker.getExecutionStatus() == TaskExecutionStatus.RUNNABLE && worker.getNodeAsObserved() != null) {
LOGGER.info("Suspending misplaced worker task {}", worker);
taskManager.suspendAndCloseTaskQuietly(worker, TaskManager.DO_NOT_WAIT, result);
currentWorkers.remove(worker);
count++;
}
}
LOGGER.trace("After closeExecutingWorkers (result: {}):\nCurrent workers: {}", count, currentWorkers);
return count;
}
代码示例来源:origin: Evolveum/midpoint
public boolean check() throws ObjectNotFoundException, SchemaException {
Task task = taskManager.getTask(TASK_USER_RECOMPUTE_OID, result);
//display("Task while waiting for task manager to pick up the task", task);
// wait until the task is finished
if (TaskExecutionStatus.CLOSED == task.getExecutionStatus()) {
return true;
}
return false;
}
代码示例来源:origin: Evolveum/midpoint
protected void assertTaskExecutionStatus(String taskOid, TaskExecutionStatus expectedExecutionStatus) throws ObjectNotFoundException, SchemaException {
final OperationResult result = new OperationResult(AbstractIntegrationTest.class+".assertTaskExecutionStatus");
Task task = taskManager.getTask(taskOid, result);
assertEquals("Wrong executionStatus in "+task, expectedExecutionStatus, task.getExecutionStatus());
}
代码示例来源:origin: Evolveum/midpoint
@Override
public boolean check() throws CommonException {
syncCycle.refresh(result);
display("SyncCycle while waiting for sync cycle to detect change", syncCycle);
if (syncCycle.getExecutionStatus() != TaskExecutionStatus.RUNNABLE) {
throw new IllegalStateException("Task not runnable: "+syncCycle.getExecutionStatus()+"; "+syncCycle);
}
int tokenNow = findSyncToken(syncCycle);
display("tokenNow = " + tokenNow);
if (tokenNow >= tokenBefore + increment) {
return true;
} else {
return false;
}
}
代码示例来源:origin: Evolveum/midpoint
private void createAndStartSubtasks(TaskPartitionsDefinition partitionsDefinition, Task masterTask,
OperationResult opResult) throws SchemaException, ObjectAlreadyExistsException, ObjectNotFoundException {
List<Task> subtasksCreated;
try {
subtasksCreated = createSubtasks(partitionsDefinition, masterTask, opResult);
} catch (Throwable t) {
List<Task> subtasksToRollback = masterTask.listSubtasks(opResult);
taskManager.suspendAndDeleteTasks(TaskUtil.tasksToOids(subtasksToRollback), TaskManager.DO_NOT_WAIT, true,
opResult);
throw t;
}
masterTask.makeWaiting(TaskWaitingReason.OTHER_TASKS, TaskUnpauseActionType.RESCHEDULE); // i.e. close for single-run tasks
masterTask.savePendingModifications(opResult);
List<Task> subtasksToResume = subtasksCreated.stream()
.filter(t -> t.getExecutionStatus() == TaskExecutionStatus.SUSPENDED)
.collect(Collectors.toList());
taskManager.resumeTasks(TaskUtil.tasksToOids(subtasksToResume), opResult);
LOGGER.info("Partitioned subtasks were successfully created and started for master {}", masterTask);
}
代码示例来源:origin: Evolveum/midpoint
private void waitForTransientChildrenAndCloseThem(OperationResult result) {
taskManagerImpl.waitForTransientChildren(task, result);
// at this moment, there should be no executing child tasks... we just clean-up all runnables that had not started
for (Task subtask : task.getLightweightAsynchronousSubtasks()) {
if (subtask.getExecutionStatus() == TaskExecutionStatus.RUNNABLE) {
if (((TaskQuartzImpl) subtask).getLightweightHandlerFuture() == null) {
LOGGER.trace("Lightweight task handler for subtask {} has not started yet; closing the task.", subtask);
closeTask((TaskQuartzImpl) subtask, result);
}
}
}
}
代码示例来源:origin: Evolveum/midpoint
@Override
public boolean check() throws CommonException {
task.refresh(waitResult);
OperationResult result = task.getResult();
if (verbose) display("Check result", result);
return task.getExecutionStatus() == TaskExecutionStatus.CLOSED;
}
@Override
代码示例来源:origin: Evolveum/midpoint
protected void waitForTaskRunnable(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval) throws
CommonException {
waitFor("Waiting for task to become runnable", () -> {
Task task = taskManager.getTaskWithResult(taskOid, result);
IntegrationTestTools.display("Task while waiting for it to become runnable", task);
return task.getExecutionStatus() == TaskExecutionStatus.RUNNABLE;
}, timeoutInterval, sleepInterval);
}
代码示例来源:origin: Evolveum/midpoint
@Override
public boolean check() throws CommonException {
task.refresh(waitResult);
OperationResult result = task.getResult();
if (verbose) display("Check result", result);
return task.getExecutionStatus() == TaskExecutionStatus.CLOSED;
}
@Override
代码示例来源:origin: Evolveum/midpoint
@Override
public boolean check() throws CommonException {
task.refresh(waitResult);
OperationResult result = task.getResult();
if (verbose)
display("Check result", result);
return task.getExecutionStatus() == TaskExecutionStatus.CLOSED;
}
代码示例来源:origin: Evolveum/midpoint
private void checkLeftover(ArrayList<String> leftovers, String testNumber, String subId, OperationResult result) throws Exception {
String oid = taskOid(testNumber, subId);
Task t;
try {
t = getTask(oid, result);
} catch (ObjectNotFoundException e) {
// this is OK, test probably did not start
LOGGER.info("Check leftovers: Task " + oid + " does not exist.");
return;
}
LOGGER.info("Check leftovers: Task " + oid + " state: " + t.getExecutionStatus());
if (t.getExecutionStatus() == TaskExecutionStatus.RUNNABLE) {
LOGGER.info("Leftover task: {}", t);
leftovers.add(t.getOid());
}
}
代码示例来源:origin: Evolveum/midpoint
protected void waitForTaskClose(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval) throws
CommonException {
waitFor("Waiting for task to close", () -> {
Task task = taskManager.getTaskWithResult(taskOid, result);
IntegrationTestTools.display("Task while waiting for it to close", task);
return task.getExecutionStatus() == TaskExecutionStatus.CLOSED;
}, timeoutInterval, sleepInterval);
}
代码示例来源:origin: Evolveum/midpoint
public void reRunClosedTask(Task task, OperationResult parentResult) throws SchemaException, ObjectNotFoundException {
OperationResult result = parentResult.createSubresult(DOT_CLASS + "reRunClosedTask");
if (task.getExecutionStatus() != TaskExecutionStatus.CLOSED) {
String message = "Task " + task + " cannot be re-run, because it is not in CLOSED state.";
result.recordFatalError(message);
LOGGER.error(message);
return;
}
if (!task.isSingle()) {
String message = "Closed recurring task " + task + " cannot be re-run, because this operation is not available for recurring tasks. Please use RESUME instead.";
result.recordWarning(message);
LOGGER.warn(message);
return;
}
taskSynchronizer.synchronizeTask((TaskQuartzImpl) task, result); // this should remove any triggers
((TaskQuartzImpl) task).setRecreateQuartzTrigger(true);
((TaskQuartzImpl) task).setExecutionStatusImmediate(TaskExecutionStatus.RUNNABLE, result); // this will create the trigger
result.recordSuccess();
// note that if scheduling (not executes before/after) prevents the task from running, it will not run!
}
代码示例来源:origin: Evolveum/midpoint
@Test
public void test100LightweightSubtasks() throws Exception {
final String TEST_NAME = "test100LightweightSubtasks";
final OperationResult result = createResult(TEST_NAME, LOGGER);
addObjectFromFile(taskFilename(TEST_NAME));
Task task = getTask(taskOid(TEST_NAME), result);
System.out.println("After setup: " + task.debugDump());
waitForTaskClose(taskOid(TEST_NAME), result, 15000, 500);
task.refresh(result);
System.out.println("After refresh (task was executed): " + task.debugDump());
Collection<? extends Task> subtasks = parallelTaskHandler.getLastTaskExecuted().getLightweightAsynchronousSubtasks();
assertEquals("Wrong number of subtasks", MockParallelTaskHandler.NUM_SUBTASKS, subtasks.size());
for (Task subtask : subtasks) {
assertEquals("Wrong subtask state", TaskExecutionStatus.CLOSED, subtask.getExecutionStatus());
MockParallelTaskHandler.MyLightweightTaskHandler handler = (MockParallelTaskHandler.MyLightweightTaskHandler) subtask.getLightweightTaskHandler();
assertTrue("Handler has not run", handler.hasRun());
assertTrue("Handler has not exited", handler.hasExited());
}
}
代码示例来源:origin: Evolveum/midpoint
protected void waitForTaskCloseCheckingSubtasks(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval) throws
CommonException {
waitFor("Waiting for task manager to execute the task", () -> {
Task task = taskManager.getTaskWithResult(taskOid, result);
display("Task tree while waiting", TaskDebugUtil.dumpTaskTree(task, result));
if (task.getExecutionStatus() == TaskExecutionStatus.CLOSED) {
display("Task is closed, finishing waiting: " + task);
return true;
}
List<Task> subtasks = task.listSubtasksDeeply(result);
for (Task subtask : subtasks) {
if (subtask.getResultStatus() == OperationResultStatusType.FATAL_ERROR
|| subtask.getResultStatus() == OperationResultStatusType.PARTIAL_ERROR) {
display("Error detected in subtask, finishing waiting: " + subtask);
return true;
}
}
return false;
}, timeoutInterval, sleepInterval);
}
内容来源于网络,如有侵权,请联系作者删除!