org.springframework.boot.task

Class TaskSchedulerBuilder

  • java.lang.Object
    • org.springframework.boot.task.TaskSchedulerBuilder


  • public class TaskSchedulerBuilder
    extends java.lang.Object
    Builder that can be used to configure and create a TaskScheduler. Provides convenience methods to set common ThreadPoolTaskScheduler settings. For advanced configuration, consider using TaskSchedulerCustomizer.

    In a typical auto-configured Spring Boot application this builder is available as a bean and can be injected whenever a TaskScheduler is needed.

    Since:
    2.1.0
    • Constructor Detail

      • TaskSchedulerBuilder

        public TaskSchedulerBuilder()
      • TaskSchedulerBuilder

        public TaskSchedulerBuilder(java.lang.Integer poolSize,
                                    java.lang.Boolean awaitTermination,
                                    java.time.Duration awaitTerminationPeriod,
                                    java.lang.String threadNamePrefix,
                                    java.util.Set<TaskSchedulerCustomizer> taskSchedulerCustomizers)
    • Method Detail

      • poolSize

        public TaskSchedulerBuilder poolSize(int poolSize)
        Set the maximum allowed number of threads.
        Parameters:
        poolSize - the pool size to set
        Returns:
        a new builder instance
      • awaitTermination

        public TaskSchedulerBuilder awaitTermination(boolean awaitTermination)
        Set whether the executor should wait for scheduled tasks to complete on shutdown, not interrupting running tasks and executing all tasks in the queue.
        Parameters:
        awaitTermination - whether the executor needs to wait for the tasks to complete on shutdown
        Returns:
        a new builder instance
        See Also:
        awaitTerminationPeriod(Duration)
      • awaitTerminationPeriod

        public TaskSchedulerBuilder awaitTerminationPeriod(java.time.Duration awaitTerminationPeriod)
        Set the maximum time the executor is supposed to block on shutdown. When set, the executor blocks on shutdown in order to wait for remaining tasks to complete their execution before the rest of the container continues to shut down. This is particularly useful if your remaining tasks are likely to need access to other resources that are also managed by the container.
        Parameters:
        awaitTerminationPeriod - the await termination period to set
        Returns:
        a new builder instance
      • threadNamePrefix

        public TaskSchedulerBuilder threadNamePrefix(java.lang.String threadNamePrefix)
        Set the prefix to use for the names of newly created threads.
        Parameters:
        threadNamePrefix - the thread name prefix to set
        Returns:
        a new builder instance
      • build

        public org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler build()
        Build a new ThreadPoolTaskScheduler instance and configure it using this builder.
        Returns:
        a configured ThreadPoolTaskScheduler instance.
        See Also:
        configure(ThreadPoolTaskScheduler)
      • configure

        public <T extends org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler> T configure(T taskScheduler)
        Configure the provided ThreadPoolTaskScheduler instance using this builder.
        Type Parameters:
        T - the type of task scheduler
        Parameters:
        taskScheduler - the ThreadPoolTaskScheduler to configure
        Returns:
        the task scheduler instance
        See Also:
        build()