springboot 定時任務schedule
阿新 • • 發佈:2018-12-11
測試版本
1.5 和 2.0.4 完全一樣
兩步
1. 配置類
2.job
1、配置類
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.SchedulingConfigurer;import org.springframework.scheduling.config.ScheduledTaskRegistrar; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @Configuration @EnableScheduling public class ScheduleConfig implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(taskExecutor()); } @Bean(destroyMethod="shutdown") public ExecutorService taskExecutor() { return Executors.newScheduledThreadPool(5); } }
2. job
package com.ly.job; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component;/** * 第一位,表示秒,取值0-59 * 第二位,表示分,取值0-59 * 第三位,表示小時,取值0-23 * 第四位,日期天/日,取值1-31 * 第五位,日期月份,取值1-12 * 第六位,星期,取值1-7,1表示星期天,2表示星期一 * 第七位,年份,可以留空,取值1970-2099 */ @Component public class HeartbeatJob { private static final Logger logger = LoggerFactory.getLogger(HeartbeatJob.class); /** * 檢查狀態1 */ @Scheduled(cron = "0 0 10,16 * * ?") public void checkState1() { logger.info(">>>1.5版本>> cron下午16上傳檢查開始...."); logger.info(">>>1.5版本>> cron下午16上傳檢查結束...."); } /** * 檢查狀態2 */ @Scheduled(cron = "0 0 18 * * ?") public void checkState2() { logger.info(">>>>> cron晚上18:00上傳檢查開始...."); logger.info(">>>>> cron晚上18:00上傳檢查完成...."); } /** * 檢查狀態3 5秒鐘執行一次 */ //@Scheduled(cron = "0/5 * * * * ? ") @Scheduled(cron = "0/5 * * * * ?") public void checkState3() { logger.info(">>1.5版本>>>0/5 檢查開始...."); } }