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

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

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

Task.makeWaiting介绍

[英]Status-changing method. It changes task's execution status to WAITING. Currently use only on transient tasks, on suspended tasks or from within task handler.
[中]状态改变方法。它将任务的执行状态更改为等待。当前仅在临时任务、暂停任务或任务处理程序中使用。

代码示例

代码示例来源:origin: Evolveum/midpoint

private void scheduleSubtasksNow(List<Task> subtasks, Task masterTask, OperationResult opResult) throws SchemaException,
    ObjectAlreadyExistsException, ObjectNotFoundException {
  masterTask.makeWaiting(TaskWaitingReason.OTHER_TASKS, TaskUnpauseActionType.RESCHEDULE);  // i.e. close for single-run tasks
  masterTask.savePendingModifications(opResult);
  Set<String> dependents = getDependentTasksIdentifiers(subtasks);
  // first set dependents to waiting, and only after that start runnables
  for (Task subtask : subtasks) {
    if (dependents.contains(subtask.getTaskIdentifier())) {
      subtask.makeWaiting(TaskWaitingReason.OTHER_TASKS, TaskUnpauseActionType.EXECUTE_IMMEDIATELY);
      subtask.savePendingModifications(opResult);
    }
  }
  for (Task subtask : subtasks) {
    if (!dependents.contains(subtask.getTaskIdentifier())) {
      taskManager.scheduleTaskNow(subtask, opResult);
    }
  }
}

代码示例来源: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

subtask.addDependent(dependent.getTaskIdentifier());
if (dependent.getExecutionStatus() == TaskExecutionStatus.SUSPENDED) {
  dependent.makeWaiting(TaskWaitingReason.OTHER_TASKS, TaskUnpauseActionType.EXECUTE_IMMEDIATELY);
  dependent.savePendingModifications(opResult);

代码示例来源:origin: Evolveum/midpoint

options.setDontCloseWorkersWhenWorkDone(true);
taskManager.reconcileWorkers(task.getOid(), options, opResult);
task.makeWaiting(TaskWaitingReason.OTHER_TASKS, TaskUnpauseActionType.RESCHEDULE);  // i.e. close for single-run tasks
task.savePendingModifications(opResult);
taskManager.resumeTasks(TaskUtil.tasksToOids(task.listSubtasks(true, opResult)), opResult);

代码示例来源:origin: Evolveum/midpoint

} else {
  task.pushHandlerUri(WfProcessInstanceShadowTaskHandler.HANDLER_URI, new ScheduleType(), null);		// note that this handler will not be actively used (at least for now)
  task.makeWaiting(TaskWaitingReason.OTHER);

相关文章

微信公众号

最新文章

更多