下面是两种方法定时任务,一个是集成quartz,另外一个是spring自带的定时任务,后者更简单一些。
1、添加pom依赖
springboot2.0之后,spring-boot-starter中已经包含了quart的依赖,所以只需要添加一个依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>
2、编写定时任务执行的方法类
public class MjtTask extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("开始定时计时");
}
}
3、配置quartz类
@Configuration
public class QuartzConfig {
@Bean
public JobDetail uploadTaskDetail() {
return JobBuilder.newJob(MjtTask.class).withIdentity("mjtTask").storeDurably().build();
}
@Bean
public Trigger uploadTaskTrigger() {
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("*/5 * * * * ?");
return TriggerBuilder.newTrigger().forJob(uploadTaskDetail())
.withIdentity("mjtTask")
.withSchedule(scheduleBuilder)
.build();
}
}
每五秒执行一次定时方法
4、运行结果图
项目启动后,定时任务开始操作,如图:
2018-07-27 15:51:34.799 INFO 44549 --- [ main] o.s.s.quartz.SchedulerFactoryBean : Starting Quartz Scheduler now
2018-07-27 15:51:34.799 INFO 44549 --- [ main] org.quartz.core.QuartzScheduler : Scheduler quartzScheduler_$_NON_CLUSTERED started.
2018-07-27 15:51:34.861 INFO 44549 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-07-27 15:51:34.868 INFO 44549 --- [ main] com.mjt.spring5.Spring5Application : Started Spring5Application in 6.087 seconds (JVM running for 9.163)
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
5、使用Spring定时任务,更简单
没有任何配置,直接添加三个注解即可
@Component
@Configurable
@EnableScheduling
public class TestTask {
@Scheduled(cron = "0/1 * * * * ?")
public void test(){
System.out.println("spring定时任务方法");
}
}
转载于:https://my.oschina.net/mdxlcj/blog/1862472