项目中需要配置个定时任务去扫描数据库表,刚开始想用quartz去实现,后来发现spring有个定时任务的注解@Scheduled,就尝试着用它来实现了,使用起来比较简单,在此记录下大概配置:
@Component
@Configuration
@EnableScheduling
public class SyncTask{
/**
* 定时扫描数据库表
* */
@Scheduled(fixedRateString="${job.schedule.rate}", initialDelayString="${job.init.delay}")
public void testSchedule(){
try{
//具体的业务代码
//to do
}
catch(Exception e){
//exception
}
}
引用的资源文件定义在spring-boot的配置文件application.properties中:
上面@Scheduled标签中的fixedRateString表示定时任务的间隔时间,单位为毫秒,initialDelayString是首次执行定时任务的延迟时间,单位也是毫秒。这里也可以直接配置cron表达式,可以直接写入参数,也可以通过占位符引用资源文件中的定义。另外别的参数配置可以参考一下链接的说明:
https://www.jianshu.com/p/1defb0f22ed1