springboot 定时任务
springboot 有自己简单的定时调度,简单到令人发指
@EnableScheduling
@Configuration
public class TestQuartz {
protected final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(this.getClass());
@Scheduled(cron = "0/20 * * * * ?")
public void testQuartz() {
logger.info("test quartz *************");
}
}
2.springboot集成quartz
添加maven依赖
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
创建一个quartz listener
@Configuration
public class SchedulerListener implements ApplicationListener<ContextRefreshedEvent> {
@Autowired
public SmaugScheduler smaugScheduler;
@Override
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
try {
smaugScheduler.schedulerJobs();
} catch (Exception e) {
}
}
@Bean
public SchedulerFactoryBean schedulerFactoryBean() {
return new SchedulerFactoryBean();
}
}
SmaugScheduler
@ComponentScan
@Configuration
public class SmaugScheduler {
@Autowired
public SchedulerFactoryBean schedulerFactoryBean;
public void schedulerJobs() throws SchedulerException {
Scheduler scheduler = schedulerFactoryBean.getScheduler();
startTestJob(scheduler);
}
private void startTestJob(Scheduler scheduler) throws SchedulerException {
JobDetail jobDetail = JobBuilder.newJob(SmaguScheduJob.class).withIdentity("job1", "group1").build();
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ?");
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").withSchedule(cronScheduleBuilder).build();
scheduler.scheduleJob(jobDetail, cronTrigger);
}
}
public class SmaguScheduJob implements Job {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
logger.info("job => qwe");
}
}
启动即可