Close

Spring Framework - Trigger Examples

[Last Updated: Oct 30, 2025]

Spring Framework 

This example shows how to use CronTrigger. CronTrigger is an implementation of Trigger which is used to schedule tasks at the specified time. It is typically used with TaskScheduler.

package com.logicbig.example;

import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.support.CronTrigger;

import java.time.LocalTime;

public class CronTriggerExample {
public static void main(String[] args) throws InterruptedException {
ThreadPoolTaskScheduler s = new ThreadPoolTaskScheduler();
s.setPoolSize(5);
s.initialize();
for (int i = 0; i < 2; i++) {
s.schedule(getTask(), new CronTrigger("0/3 * * * * *"));
}
Thread.sleep(10000);
//shutting down after 10 seconds
s.getScheduledThreadPoolExecutor().shutdown();
}

public static Runnable getTask() {
return () -> System.out.printf("Task: %s, Time: %s%n",
Thread.currentThread().getName(),
LocalTime.now());
}
}

Output

Task: ThreadPoolTaskScheduler-2, Time: 16:08:21.011798100
Task: ThreadPoolTaskScheduler-1, Time: 16:08:21.011798100
Task: ThreadPoolTaskScheduler-1, Time: 16:08:24.012974500
Task: ThreadPoolTaskScheduler-2, Time: 16:08:24.012974500
Task: ThreadPoolTaskScheduler-3, Time: 16:08:27.008363700
Task: ThreadPoolTaskScheduler-4, Time: 16:08:27.012350300
Task: ThreadPoolTaskScheduler-5, Time: 16:08:30.009166800
Task: ThreadPoolTaskScheduler-4, Time: 16:08:30.009166800
Original Post




This example shows how to use PeriodicTrigger (A trigger for periodic task execution).

package com.logicbig.example;

import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.support.PeriodicTrigger;

import java.time.LocalTime;
import java.util.concurrent.TimeUnit;

public class PeriodicTriggerExample {
public static void main(String[] args) throws InterruptedException {
ThreadPoolTaskScheduler s = new ThreadPoolTaskScheduler();
s.setPoolSize(5);
s.initialize();
for (int i = 0; i < 2; i++) {
s.schedule(getTask(), new PeriodicTrigger(5, TimeUnit.SECONDS));
}
Thread.sleep(10000);
//shutting down after 10 sec
s.getScheduledThreadPoolExecutor().shutdownNow();
}

public static Runnable getTask() {
return () -> System.out.printf("Task: %s, Time: %s%n",
Thread.currentThread().getName(),
LocalTime.now());
}
}

Output

Task: ThreadPoolTaskScheduler-1, Time: 16:08:07.193815400
Task: ThreadPoolTaskScheduler-2, Time: 16:08:07.193815400
Task: ThreadPoolTaskScheduler-2, Time: 16:08:12.200387900
Task: ThreadPoolTaskScheduler-1, Time: 16:08:12.200387900
Original Post




See Also