org.springframework.messaging.simp.config

## Class TaskExecutorRegistration

- java.lang.Object
- - org.springframework.messaging.simp.config.TaskExecutorRegistration

-     public class TaskExecutorRegistration
      extends Object

  A registration class for customizing the properties of `ThreadPoolTaskExecutor`.
  Since:
    4.0
  Author:
    Rossen Stoyanchev, Juergen Hoeller

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TaskExecutorRegistration()` Create a new `TaskExecutorRegistration` for a default `ThreadPoolTaskExecutor`.
    `TaskExecutorRegistration(ThreadPoolTaskExecutor taskExecutor)` Create a new `TaskExecutorRegistration` for a given `ThreadPoolTaskExecutor`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `TaskExecutorRegistration` | `corePoolSize(int corePoolSize)` Set the core pool size of the ThreadPoolExecutor.
    `protected ThreadPoolTaskExecutor` | `getTaskExecutor()`
    `TaskExecutorRegistration` | `keepAliveSeconds(int keepAliveSeconds)` Set the time limit for which threads may remain idle before being terminated.
    `TaskExecutorRegistration` | `maxPoolSize(int maxPoolSize)` Set the max pool size of the ThreadPoolExecutor.
    `TaskExecutorRegistration` | `queueCapacity(int queueCapacity)` Set the queue capacity for the ThreadPoolExecutor.

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### TaskExecutorRegistration

          public TaskExecutorRegistration()

      Create a new `TaskExecutorRegistration` for a default `ThreadPoolTaskExecutor`.

    - #### TaskExecutorRegistration

          public TaskExecutorRegistration(ThreadPoolTaskExecutor taskExecutor)

      Create a new `TaskExecutorRegistration` for a given `ThreadPoolTaskExecutor`.
      Parameters:
        `taskExecutor` - the executor to use

  - ### Method Detail

    - #### corePoolSize

          public TaskExecutorRegistration corePoolSize(int corePoolSize)

      Set the core pool size of the ThreadPoolExecutor.

      NOTE: The core pool size is effectively the max pool size when an unbounded `queueCapacity` is configured (the default). This is essentially the "Unbounded queues" strategy as explained in `ThreadPoolExecutor`. When this strategy is used, the `maxPoolSize` is ignored.

      By default this is set to twice the value of `Runtime.availableProcessors()`. In an application where tasks do not block frequently, the number should be closer to or equal to the number of available CPUs/cores.

    - #### maxPoolSize

          public TaskExecutorRegistration maxPoolSize(int maxPoolSize)

      Set the max pool size of the ThreadPoolExecutor.

      NOTE: When an unbounded `queueCapacity` is configured (the default), the max pool size is effectively ignored. See the "Unbounded queues" strategy in `ThreadPoolExecutor` for more details.

      By default this is set to `Integer.MAX_VALUE`.

    - #### keepAliveSeconds

          public TaskExecutorRegistration keepAliveSeconds(int keepAliveSeconds)

      Set the time limit for which threads may remain idle before being terminated. If there are more than the core number of threads currently in the pool, after waiting this amount of time without processing a task, excess threads will be terminated. This overrides any value set in the constructor.

      By default this is set to 60.

    - #### queueCapacity

          public TaskExecutorRegistration queueCapacity(int queueCapacity)

      Set the queue capacity for the ThreadPoolExecutor.

      NOTE: when an unbounded `queueCapacity` is configured (the default), the core pool size is effectively the max pool size. This is essentially the "Unbounded queues" strategy as explained in `ThreadPoolExecutor`. When this strategy is used, the `maxPoolSize` is ignored.

      By default this is set to `Integer.MAX_VALUE`.

    - #### getTaskExecutor

          protected ThreadPoolTaskExecutor getTaskExecutor()