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(org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor taskExecutor)` Create a new `TaskExecutorRegistration` for a given `ThreadPoolTaskExecutor`.

### Method Summary

All Methods Instance Methods Concrete Methods
`TaskExecutorRegistration` `corePoolSize(int corePoolSize)` Set the core pool size of the ThreadPoolExecutor.
`protected org.springframework.scheduling.concurrent.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(org.springframework.scheduling.concurrent.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 org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor getTaskExecutor()