Spring Boot定时任务spring-boot-starter-quartz配置运行及测试
spring-boot
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
项目地址:https://gitcode.com/gh_mirrors/sp/spring-boot
免费下载资源
·
在Spring Boot中可以通过spring-boot-starter-quartz可以实现定时任务
Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
Bean配置
定时任务相关配置,比如我们设置定时任务时间间隔为3秒,具体看如下代码注释
@Configuration
public class CustomizeScheduleConfigTask {
/**
* 定时任务
* @return
*/
@Bean
public JobDetail testJobDetail() {
return JobBuilder.newJob(TestJobBean.class)
.withIdentity("testJobDetail")
.storeDurably()
.build();
}
/**
* 触发器,每间隔一段时间触发定时任务
* @param jobDetail 具体执行的定时任务
* @return
*/
@Bean
public Trigger testJobTrigger(@Qualifier("testJobDetail") JobDetail jobDetail) {
ScheduleBuilder scheduleBuilder = SimpleScheduleBuilder
.simpleSchedule()
.withIntervalInSeconds(3) // 定时任务间隔时间
.repeatForever(); // 触发器无限循环触发
return TriggerBuilder.newTrigger()
.forJob(jobDetail)
.withIdentity("testJobTrigger")
.withSchedule(scheduleBuilder)
.build();
}
}
定时任务实现
具体的定时任务内容,这里简单打印下当前线程和时间
@Service
public class TestJobBean extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext) {
System.out.println("TestJobBean:::" + Thread.currentThread().getName() + ":::" + SimpleDateFormat.getDateTimeInstance().format(new Date()));
}
}
运行项目可以看到打印的日志,每条任务之间的间隔是3秒
每个任务运行在不同的线程,后面线程会复用,说明有个线程池
TestJobBean:::quartzScheduler_Worker-3:::Aug 5, 2020 2:56:44 PM
TestJobBean:::quartzScheduler_Worker-4:::Aug 5, 2020 2:56:47 PM
TestJobBean:::quartzScheduler_Worker-5:::Aug 5, 2020 2:56:50 PM
TestJobBean:::quartzScheduler_Worker-6:::Aug 5, 2020 2:56:53 PM
TestJobBean:::quartzScheduler_Worker-7:::Aug 5, 2020 2:56:56 PM
TestJobBean:::quartzScheduler_Worker-8:::Aug 5, 2020 2:56:59 PM
TestJobBean:::quartzScheduler_Worker-10:::Aug 5, 2020 2:57:02 PM
TestJobBean:::quartzScheduler_Worker-2:::Aug 5, 2020 2:57:05 PM
TestJobBean:::quartzScheduler_Worker-3:::Aug 5, 2020 2:57:08 PM
TestJobBean:::quartzScheduler_Worker-1:::Aug 5, 2020 2:57:11 PM
GitHub 加速计划 / sp / spring-boot
73.97 K
40.4 K
下载
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
最近提交(Master分支:2 个月前 )
68022ef0
Update `StructuredLoggingJsonProperties` to use a real Class reference
rather than a String.
Closes gh-43202
5 天前
d83d34d1 - 5 天前
更多推荐
已为社区贡献13条内容
所有评论(0)