SpringBoot 使用定时任务
SpringBoot使用定时任务
properties.yml
server: port: 9090 spring: application: name: mydemo jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 mvc: favicon: enabled: false logging: path: ./logs/
pom文件
4.0.0 com.example mydemo 0.0.1-SNAPSHOT jar mydemo http://maven.apache.org UTF-8 1.8 1.8 org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE org.springframework.boot spring-boot-starter-web junit junit test org.springframework.boot spring-boot-maven-plugin repackage
定时任务
package com.example.mydemo.task; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.TaskScheduler; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; @Configuration @EnableScheduling public class DemoTask { @Bean public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setPoolSize(2); //并行执行个数 taskScheduler.setThreadNamePrefix("hello"); //设置线程前缀 return taskScheduler; } @Scheduled(fixedDelay = 5000) public void cronTask() { System.out.println(Thread.currentThread().getName() + " 每5秒执行一次"); try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Scheduled(cron = "*/5 * * * * *") public void cronTask2() { System.out.println(Thread.currentThread().getName() + " 每3秒执行一次"); } }
package com.example.mydemo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Hello world! * */ @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication app = new SpringApplication(App.class); app.run(args); } }