您的位置:首页 > 编程语言 > Java开发

springboot 定时任务

2017-04-30 23:32 260 查看

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");
}
}


启动即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: