com.evolveum.midpoint.task.api.Task.getExecutionStatus()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(11.4k)|赞(0)|评价(0)|浏览(150)

本文整理了Java中com.evolveum.midpoint.task.api.Task.getExecutionStatus()方法的一些代码示例,展示了Task.getExecutionStatus()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Task.getExecutionStatus()方法的具体详情如下:
包路径:com.evolveum.midpoint.task.api.Task
类名称:Task
方法名:getExecutionStatus

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);
}

相关文章

微信公众号

最新文章

更多