org.springframework.scheduling.concurrent

## 类 ConcurrentTaskScheduler

- java.lang.Object
- - org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
  - - org.springframework.scheduling.concurrent.ConcurrentTaskScheduler

- 所有已实现的接口:
    Executor, org.springframework.core.task.AsyncListenableTaskExecutor, org.springframework.core.task.AsyncTaskExecutor, org.springframework.core.task.TaskExecutor, SchedulingTaskExecutor, TaskScheduler
  直接已知子类:
    DefaultManagedTaskScheduler

      public class ConcurrentTaskScheduler
      extends ConcurrentTaskExecutor
      implements TaskScheduler

  Adapter that takes a `java.util.concurrent.ScheduledExecutorService` and exposes a Spring `TaskScheduler` for it. Extends `ConcurrentTaskExecutor` in order to implement the `SchedulingTaskExecutor` interface as well.

  Autodetects a JSR-236 `ManagedScheduledExecutorService` in order to use it for trigger-based scheduling if possible, instead of Spring's local trigger management which ends up delegating to regular delay-based scheduling against the `java.util.concurrent.ScheduledExecutorService` API. For JSR-236 style lookup in a Java EE 7 environment, consider using `DefaultManagedTaskScheduler`.

  Note that there is a pre-built `ThreadPoolTaskScheduler` that allows for defining a `ScheduledThreadPoolExecutor` in bean style, exposing it as a Spring `TaskScheduler` directly. This is a convenient alternative to a raw ScheduledThreadPoolExecutor definition with a separate definition of the present adapter class.

  从以下版本开始:
    3.0
  作者:
    Juergen Hoeller, Mark Fisher
  另请参阅:
    `ScheduledExecutorService`, `ScheduledThreadPoolExecutor`, `Executors`, `DefaultManagedTaskScheduler`, `ThreadPoolTaskScheduler`

- - ### 嵌套类概要

    - ### 从类继承的嵌套类/接口 org.springframework.scheduling.concurrent.ConcurrentTaskExecutor

      `ConcurrentTaskExecutor.ManagedTaskBuilder`

  - ### 字段概要

    - ### 从接口继承的字段 org.springframework.core.task.AsyncTaskExecutor

      `TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE`

  - ### 构造器概要

    构造器
    构造器和说明
    `ConcurrentTaskScheduler()` Create a new ConcurrentTaskScheduler, using a single thread executor as default.
    `ConcurrentTaskScheduler(Executor concurrentExecutor, ScheduledExecutorService scheduledExecutor)` Create a new ConcurrentTaskScheduler, using the given `Executor` and `ScheduledExecutorService` as delegates.
    `ConcurrentTaskScheduler(ScheduledExecutorService scheduledExecutor)` Create a new ConcurrentTaskScheduler, using the given `ScheduledExecutorService` as shared delegate.

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `ScheduledFuture<?>` | `schedule(Runnable task, Date startTime)` Schedule the given `Runnable`, invoking it at the specified execution time.
    `ScheduledFuture<?>` | `schedule(Runnable task, Trigger trigger)` Schedule the given `Runnable`, invoking it whenever the trigger indicates a next execution time.
    `ScheduledFuture<?>` | `scheduleAtFixedRate(Runnable task, Date startTime, long period)` Schedule the given `Runnable`, invoking it at the specified execution time and subsequently with the given period.
    `ScheduledFuture<?>` | `scheduleAtFixedRate(Runnable task, long period)` Schedule the given `Runnable`, starting as soon as possible and invoking it with the given period.
    `ScheduledFuture<?>` | `scheduleWithFixedDelay(Runnable task, Date startTime, long delay)` Schedule the given `Runnable`, invoking it at the specified execution time and subsequently with the given delay between the completion of one execution and the start of the next.
    `ScheduledFuture<?>` | `scheduleWithFixedDelay(Runnable task, long delay)` Schedule the given `Runnable`, starting as soon as possible and invoking it with the given delay between the completion of one execution and the start of the next.
    `void` | `setErrorHandler(org.springframework.util.ErrorHandler errorHandler)` Provide an `ErrorHandler` strategy.
    `void` | `setScheduledExecutor(ScheduledExecutorService scheduledExecutor)` Specify the `ScheduledExecutorService` to delegate to.

    - ### 从类继承的方法 org.springframework.scheduling.concurrent.ConcurrentTaskExecutor

      `execute, execute, getConcurrentExecutor, prefersShortLivedTasks, setConcurrentExecutor, setTaskDecorator, submit, submit, submitListenable, submitListenable`

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### 从接口继承的方法 org.springframework.scheduling.TaskScheduler

      `schedule, scheduleAtFixedRate, scheduleAtFixedRate, scheduleWithFixedDelay, scheduleWithFixedDelay`

- - ### 构造器详细资料

    - #### ConcurrentTaskScheduler

          public ConcurrentTaskScheduler()

      Create a new ConcurrentTaskScheduler, using a single thread executor as default.
      另请参阅:
        `Executors.newSingleThreadScheduledExecutor()`

    - #### ConcurrentTaskScheduler

          public ConcurrentTaskScheduler(ScheduledExecutorService scheduledExecutor)

      Create a new ConcurrentTaskScheduler, using the given `ScheduledExecutorService` as shared delegate.

      Autodetects a JSR-236 `ManagedScheduledExecutorService` in order to use it for trigger-based scheduling if possible, instead of Spring's local trigger management.

      参数:
        `scheduledExecutor` - the `ScheduledExecutorService` to delegate to for `SchedulingTaskExecutor` as well as `TaskScheduler` invocations

    - #### ConcurrentTaskScheduler

          public ConcurrentTaskScheduler(Executor concurrentExecutor,
                                         ScheduledExecutorService scheduledExecutor)

      Create a new ConcurrentTaskScheduler, using the given `Executor` and `ScheduledExecutorService` as delegates.

      Autodetects a JSR-236 `ManagedScheduledExecutorService` in order to use it for trigger-based scheduling if possible, instead of Spring's local trigger management.

      参数:
        `concurrentExecutor` - the `Executor` to delegate to for `SchedulingTaskExecutor` invocations
        `scheduledExecutor` - the `ScheduledExecutorService` to delegate to for `TaskScheduler` invocations

  - ### 方法详细资料

    - #### setScheduledExecutor

          public void setScheduledExecutor(@Nullable
                                           ScheduledExecutorService scheduledExecutor)

      Specify the `ScheduledExecutorService` to delegate to.

      Autodetects a JSR-236 `ManagedScheduledExecutorService` in order to use it for trigger-based scheduling if possible, instead of Spring's local trigger management.

      Note: This will only apply to `TaskScheduler` invocations. If you want the given executor to apply to `SchedulingTaskExecutor` invocations as well, pass the same executor reference to `ConcurrentTaskExecutor.setConcurrentExecutor(java.util.concurrent.Executor)`.

      另请参阅:
        `ConcurrentTaskExecutor.setConcurrentExecutor(java.util.concurrent.Executor)`

    - #### setErrorHandler

          public void setErrorHandler(org.springframework.util.ErrorHandler errorHandler)

      Provide an `ErrorHandler` strategy.

    - #### schedule

          @Nullable
          public ScheduledFuture<?> schedule(Runnable task,
                                                        Trigger trigger)

      从接口复制的说明: `TaskScheduler`
      Schedule the given `Runnable`, invoking it whenever the trigger indicates a next execution time.

      Execution will end once the scheduler shuts down or the returned `ScheduledFuture` gets cancelled.

      指定者:
        `schedule` 在接口中 `TaskScheduler`
      参数:
        `task` - the Runnable to execute whenever the trigger fires
        `trigger` - an implementation of the `Trigger` interface, e.g. a `CronTrigger` object wrapping a cron expression
      返回:
        a `ScheduledFuture` representing pending completion of the task, or `null` if the given Trigger object never fires (i.e. returns `null` from `Trigger.nextExecutionTime(org.springframework.scheduling.TriggerContext)`)
      另请参阅:
        `CronTrigger`

    - #### schedule

          public ScheduledFuture<?> schedule(Runnable task,
                                             Date startTime)

      从接口复制的说明: `TaskScheduler`
      Schedule the given `Runnable`, invoking it at the specified execution time.

      Execution will end once the scheduler shuts down or the returned `ScheduledFuture` gets cancelled.

      指定者:
        `schedule` 在接口中 `TaskScheduler`
      参数:
        `task` - the Runnable to execute whenever the trigger fires
        `startTime` - the desired execution time for the task (if this is in the past, the task will be executed immediately, i.e. as soon as possible)
      返回:
        a `ScheduledFuture` representing pending completion of the task

    - #### scheduleAtFixedRate

          public ScheduledFuture<?> scheduleAtFixedRate(Runnable task,
                                                        Date startTime,
                                                        long period)

      从接口复制的说明: `TaskScheduler`
      Schedule the given `Runnable`, invoking it at the specified execution time and subsequently with the given period.

      Execution will end once the scheduler shuts down or the returned `ScheduledFuture` gets cancelled.

      指定者:
        `scheduleAtFixedRate` 在接口中 `TaskScheduler`
      参数:
        `task` - the Runnable to execute whenever the trigger fires
        `startTime` - the desired first execution time for the task (if this is in the past, the task will be executed immediately, i.e. as soon as possible)
        `period` - the interval between successive executions of the task (in milliseconds)
      返回:
        a `ScheduledFuture` representing pending completion of the task

    - #### scheduleAtFixedRate

          public ScheduledFuture<?> scheduleAtFixedRate(Runnable task,
                                                        long period)

      从接口复制的说明: `TaskScheduler`
      Schedule the given `Runnable`, starting as soon as possible and invoking it with the given period.

      Execution will end once the scheduler shuts down or the returned `ScheduledFuture` gets cancelled.

      指定者:
        `scheduleAtFixedRate` 在接口中 `TaskScheduler`
      参数:
        `task` - the Runnable to execute whenever the trigger fires
        `period` - the interval between successive executions of the task (in milliseconds)
      返回:
        a `ScheduledFuture` representing pending completion of the task

    - #### scheduleWithFixedDelay

          public ScheduledFuture<?> scheduleWithFixedDelay(Runnable task,
                                                           Date startTime,
                                                           long delay)

      从接口复制的说明: `TaskScheduler`
      Schedule the given `Runnable`, invoking it at the specified execution time and subsequently with the given delay between the completion of one execution and the start of the next.

      Execution will end once the scheduler shuts down or the returned `ScheduledFuture` gets cancelled.

      指定者:
        `scheduleWithFixedDelay` 在接口中 `TaskScheduler`
      参数:
        `task` - the Runnable to execute whenever the trigger fires
        `startTime` - the desired first execution time for the task (if this is in the past, the task will be executed immediately, i.e. as soon as possible)
        `delay` - the delay between the completion of one execution and the start of the next (in milliseconds)
      返回:
        a `ScheduledFuture` representing pending completion of the task

    - #### scheduleWithFixedDelay

          public ScheduledFuture<?> scheduleWithFixedDelay(Runnable task,
                                                           long delay)

      从接口复制的说明: `TaskScheduler`
      Schedule the given `Runnable`, starting as soon as possible and invoking it with the given delay between the completion of one execution and the start of the next.

      Execution will end once the scheduler shuts down or the returned `ScheduledFuture` gets cancelled.

      指定者:
        `scheduleWithFixedDelay` 在接口中 `TaskScheduler`
      参数:
        `task` - the Runnable to execute whenever the trigger fires
        `delay` - the delay between the completion of one execution and the start of the next (in milliseconds)
      返回:
        a `ScheduledFuture` representing pending completion of the task