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 Details

    • 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 Details

    • 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.

    • isExternallyDefined

      protected boolean isExternallyDefined()
      Specify if the task executor has been supplied.
      Returns:
      true if the task executor was provided, false if it has been created internally
      Since:
      6.2
    • getTaskExecutor

      protected ThreadPoolTaskExecutor getTaskExecutor()