SpringBoot基于mybatis-plus集成定时器任务管理
时间: 2023-06-02 10:01:53 浏览: 169
1. 添加依赖
在pom.xml文件中添加如下依赖:
```
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
```
2. 配置定时器
在application.yml文件中添加如下配置:
```
spring:
quartz:
job-store-type: jdbc
properties:
org:
quartz:
scheduler:
instanceName: quartzScheduler
instanceId: AUTO
jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_
isClustered: true
clusterCheckinInterval: 20000
useProperties: false
threadPool:
class: org.quartz.simpl.SimpleThreadPool
threadCount: 10
threadPriority: 5
threadsInheritContextClassLoaderOfInitializingThread: true
```
3. 编写定时器任务类
在项目中创建一个定时器任务类,例如:
```
@Component
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO 定时器任务逻辑
}
}
```
4. 配置定时器任务
在项目中创建一个定时器配置类,例如:
```
@Configuration
public class QuartzConfig {
@Autowired
private MyJob myJob;
@Bean
public JobDetail jobDetail() {
return JobBuilder.newJob(myJob.getClass()).withIdentity("myJob").storeDurably().build();
}
@Bean
public Trigger trigger() {
return TriggerBuilder.newTrigger().forJob(jobDetail()).withIdentity("myTrigger")
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 * * ?")).build();
}
@Bean
public Scheduler scheduler(Trigger trigger) throws SchedulerException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.scheduleJob(jobDetail(), trigger);
scheduler.start();
return scheduler;
}
}
```
其中,jobDetail()方法用于创建一个JobDetail对象,定义了定时器任务的基本信息,如任务名称、任务组等,trigger()方法用于创建一个Trigger对象,定义了定时器任务的触发器信息,如触发时间、触发频率等,scheduler()方法用于创建一个Scheduler对象,并将JobDetail对象和Trigger对象绑定到Scheduler对象上,最后启动Scheduler对象。
5. 测试定时器任务
在启动应用程序后,定时器任务将按照配置的时间和频率执行。可以通过查看日志文件或数据库表来验证定时器任务是否执行成功。
阅读全文