SpringBoot用@Scheduled创建定时任务



        在方法上加上@Scheduled,然后在Spring Boot的主类(或者该任务类)上加入@EnableScheduling注解,启用定时任务的配置即可

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.xxx.GoodsService;

@EnableScheduling
@Component
public class DeleteJob {
	private static Log log = LogFactory.getLog(DeleteJob.class);
	
	@Autowired
	private GoodsService goodsService;
	
	@Scheduled(cron = "0 0 */2 * * *")  
	public void deleteGoodsData() {
		log.info("deleteGoodsData begin.............");
		try {
			int n = goodsService.deleteDeadDatas() ;
			log.info("删除数据量: " + n);
		} catch (Exception e) {
			log.info("异常 : " , e);
		}
		log.info("deleteGoodsData end.............");
	}
}



@Scheduled详解

对于@Scheduled的使用可以总结如下几种方式:

@Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行

@Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行

@Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次

@Scheduled(cron="*/5 * * * * *") :通过cron表达式定义规则




SpringBoot Scheduled 定时任务

2020.11.24 01:32

https://www.meihaocloud.com.com/388.html , 欢迎转载,请在文章页标出原文连接 !


Copyright © 2020 千夕网 联系站长

粤公网安备 44030302001408号 粤ICP备19099833号-1