代码
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
/**
* 定时任务配置
*
* @Author : xiao
* @Date : 17/7/6 下午2:55
*/
@Configuration
@EnableScheduling
public class SchedulingConfig {
private static final Logger logger = LoggerFactory.getLogger(SchedulingConfig.class);
private final static long ONE_Minute = 60 * 1000;
@Scheduled(fixedDelay=ONE_Minute)
public void fixedDelayJob(){
logger.info("==========> fixedDelay 执行...");
}
@Scheduled(fixedRate=ONE_Minute)
public void fixedRateJob(){
logger.info("==========> fixedRate 执行...");
}
@Scheduled(cron = "${jobs.cron}")
public void updateRankingList() {
logger.info("==========> cron 执行...");
}
}
application.properties
每30秒执行一次
jobs.cron=0/30 * * * * ?
cron表达式工具:
说明:
- fixedDelay和fixedRate,单位是毫秒,所以1分钟就是60秒×1000。
- 区别fixedRate就是每隔多少分钟执行一次,不论你业务执行花费了多少时间,都是1分钟执行1次。而fixedDelay是当任务执行完毕后1分钟在执行。
- cron表达式,用来处理:每天,每星期,每月这样的任务。