Spring Boot provides a simple and easy way to develop and run a Task scheduler without using any xml and bean configurations.
Simply add the annotation @Scheduled on the task scheduler method with required interval time.
In this example, we will see how to use Spring @Scheduled annotation to schedule a task.
Step 1 : pom.xml
pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>1.3.0.RELEASE</version> </dependency>
Step 2 : Create Scheduler class
MyScheduledTasks
package com.kswaughs.tasks; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class MyScheduledTasks { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); @Scheduled(fixedRate = 10000) public void sendMailToCustomers() { System.out.println("sendMailToCustomers Job ran at " + dateFormat.format(new Date())); } }
Step 3 : Enable Scheduling
BootApp
package com.kswaughs.config; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableScheduling @ComponentScan({ "com.kswaughs.tasks" }) public class BootApp { public static void main(String[] args) { SpringApplication.run(new Object[] { BootApp.class }, args); } }
Step 4 : Run the application
In this example, Job scheduler is configured to run at an interval of every 10 seconds.
sendMailToCustomers Job ran at 02/25/2016 14:30:02 sendMailToCustomers Job ran at 02/25/2016 14:30:12 sendMailToCustomers Job ran at 02/25/2016 14:30:22 sendMailToCustomers Job ran at 02/25/2016 14:30:32 sendMailToCustomers Job ran at 02/25/2016 14:30:42 sendMailToCustomers Job ran at 02/25/2016 14:30:52 sendMailToCustomers Job ran at 02/25/2016 14:31:02 sendMailToCustomers Job ran at 02/25/2016 14:31:12
Eskişehir
ReplyDeleteDenizli
Malatya
Diyarbakır
Kocaeli
HS2ZN