Package org.springframework.cloud.task.repository

# Interface TaskExplorer

All Known Implementing Classes:
  `SimpleTaskExplorer`

public interface TaskExplorer
Offers methods that allow users to query the task executions that are available.

Author:
  Glenn Renfro, Michael Minella, Gunnar Hillert

- ## Method Summary

  Modifier and Type
  Method
  Description
  `org.springframework.data.domain.Page<TaskExecution>`
  `findAll(org.springframework.data.domain.Pageable pageable)`
  Retrieves all the task executions within the pageable constraints sorted by start date descending, taskExecution id descending.
  `org.springframework.data.domain.Page<TaskExecution>`
  `findRunningTaskExecutions(String taskName, org.springframework.data.domain.Pageable pageable)`
  Retrieve a collection of taskExecutions that have the task name provided.
  `org.springframework.data.domain.Page<TaskExecution>`
  `findTaskExecutionsByName(String taskName, org.springframework.data.domain.Pageable pageable)`
  Get a collection/page of executions.
  `Set<Long>`
  `getJobExecutionIdsByTaskExecutionId(long taskExecutionId)`
  Returns a Set of JobExecution ids for the jobs that were executed within the scope of the requested task.
  `TaskExecution`
  `getLatestTaskExecutionForTaskName(String taskName)`
  Returns the latest task execution for a given task name.
  `List<TaskExecution>`
  `getLatestTaskExecutionsByTaskNames(String... taskNames)`
  Returns a `List` of the latest `TaskExecution` for 1 or more task names.
  `long`
  `getRunningTaskExecutionCount()`
  Retrieves current number of running task executions.
  `TaskExecution`
  `getTaskExecution(long executionId)`
  Retrieve a `TaskExecution` by its id.
  `long`
  `getTaskExecutionCount()`
  Retrieves current number of task executions.
  `long`
  `getTaskExecutionCountByTaskName(String taskName)`
  Get number of executions for a taskName.
  `Long`
  `getTaskExecutionIdByJobExecutionId(long jobExecutionId)`
  Returns the id of the TaskExecution that the requested Spring Batch job execution was executed within the context of.
  `List<String>`
  `getTaskNames()`
  Retrieve a list of available task names.

- ## Method Details

  - ### getTaskExecution

    TaskExecution getTaskExecution(long executionId)
    Retrieve a `TaskExecution` by its id.
    Parameters:
      `executionId` - the task execution id
    Returns:
      the `TaskExecution` with this id, or null if not found

  - ### findRunningTaskExecutions

    org.springframework.data.domain.Page<TaskExecution> findRunningTaskExecutions(String taskName, org.springframework.data.domain.Pageable pageable)
    Retrieve a collection of taskExecutions that have the task name provided.
    Parameters:
      `taskName` - the name of the task
      `pageable` - the constraints for the search
    Returns:
      the set of running executions for tasks with the specified name

  - ### getTaskNames

    List<String> getTaskNames()
    Retrieve a list of available task names.
    Returns:
      the set of task names that have been executed

  - ### getTaskExecutionCountByTaskName

    long getTaskExecutionCountByTaskName(String taskName)
    Get number of executions for a taskName.
    Parameters:
      `taskName` - the name of the task to be searched
    Returns:
      the number of running tasks that have the taskname specified

  - ### getTaskExecutionCount

    long getTaskExecutionCount()
    Retrieves current number of task executions.
    Returns:
      current number of task executions.

  - ### getRunningTaskExecutionCount

    long getRunningTaskExecutionCount()
    Retrieves current number of running task executions.
    Returns:
      current number of running task executions.

  - ### findTaskExecutionsByName

    org.springframework.data.domain.Page<TaskExecution> findTaskExecutionsByName(String taskName, org.springframework.data.domain.Pageable pageable)
    Get a collection/page of executions.
    Parameters:
      `taskName` - the name of the task to be searched
      `pageable` - the constraints for the search
    Returns:
      list of task executions

  - ### findAll

    org.springframework.data.domain.Page<TaskExecution> findAll(org.springframework.data.domain.Pageable pageable)
    Retrieves all the task executions within the pageable constraints sorted by start date descending, taskExecution id descending.
    Parameters:
      `pageable` - the constraints for the search
    Returns:
      page containing the results from the search

  - ### getTaskExecutionIdByJobExecutionId

    Long getTaskExecutionIdByJobExecutionId(long jobExecutionId)
    Returns the id of the TaskExecution that the requested Spring Batch job execution was executed within the context of. Returns null if none were found.
    Parameters:
      `jobExecutionId` - the id of the JobExecution
    Returns:
      the id of the `TaskExecution`

  - ### getJobExecutionIdsByTaskExecutionId

    Set<Long> getJobExecutionIdsByTaskExecutionId(long taskExecutionId)
    Returns a Set of JobExecution ids for the jobs that were executed within the scope of the requested task.
    Parameters:
      `taskExecutionId` - id of the `TaskExecution`
    Returns:
      a `Set` of the ids of the job executions executed within the task.

  - ### getLatestTaskExecutionsByTaskNames

    List<TaskExecution> getLatestTaskExecutionsByTaskNames(String... taskNames)
    Returns a `List` of the latest `TaskExecution` for 1 or more task names. Latest is defined by the most recent start time. A `TaskExecution` does not have to be finished (The results may including pending `TaskExecution`s). It is theoretically possible that a `TaskExecution` with the same name to have more than 1 `TaskExecution` for the exact same start time. In that case the `TaskExecution` with the highest Task Execution ID is returned. This method will not consider end times in its calculations. Thus, when a task execution `A` starts after task execution `B` but finishes BEFORE task execution `A`, then task execution `B` is being returned.
    Parameters:
      `taskNames` - At least 1 task name must be provided
    Returns:
      List of TaskExecutions. May be empty but never null.

  - ### getLatestTaskExecutionForTaskName

    TaskExecution getLatestTaskExecutionForTaskName(String taskName)
    Returns the latest task execution for a given task name. Will ultimately apply the same algorithm underneath as `getLatestTaskExecutionsByTaskNames(String...)` but will only return a single result.
    Parameters:
      `taskName` - Must not be null or empty
    Returns:
      The latest Task Execution or null
    See Also:
      - `getLatestTaskExecutionsByTaskNames(String...)`