今天在项目中需要用到一个定时任务的功能,项目使用的框架是springboot,在此记录一下再springboot中使用定时任务的一种方式,也希望能帮到有需要的小伙伴。
第一步:添加依赖
<!-- 定时任务的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
之所以要添加依赖是因为在springboot的启动类上需要使用@MapperScan注解来扫描定时任务所在的位置。
第二步:在启动类上注解
@MapperScan("com.iscas.huiebidserver.mapper") //扫描定时任务所在的包
@EnableScheduling //开启定时任务支持
public class HuiEbidServerApplication extends WebMvcConfigurerAdapter implements ApplicationListener<ContextRefreshedEvent> {
private final static Logger logger= LoggerFactory.getLogger(HuiEbidServerApplication.class);
public static void main(String[] args) {
SpringApplication.run(HuiEbidServerApplication.class, args);
}
}
注意:@MapperScan("com.iscas.huiebidserver.mapper"),这个注解需要加入相应的依赖(第一步),扫描所在的包及子包,如我的定时任务类放在此路径下:
package com.iscas.huiebidserver.mapper.HomeSystem.Elasticsearch;
第三步:编写定时任务类
@Component
public class QuartzTask {
/**
* 时间设置顺序: 秒,分,时,天,月,年
* *为任意 ?为无限制
*/
@Scheduled(cron = "*/3 * * * * ?") //每3s执行一次
public void execute(){
this.myTaskJob();
}
//业务方法
private void myTaskJob(){
//自己实现
}
}
需要注意的就是定时任务的时间设置,不清楚的问问度娘。