springboot 定时任务通过配置文件控制
时间: 2023-10-17 12:08:31 浏览: 89
在Spring Boot中,我们可以通过在application.properties或application.yml文件中配置定时任务。
首先,我们需要在依赖中引入Spring Boot的定时任务支持:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
```
接下来,在application.properties文件中添加以下配置:
```properties
# 开启定时任务
spring.quartz.enabled=true
# 调度器名称
spring.quartz.properties.org.quartz.scheduler.instanceName=quartzScheduler
# 调度器ID
spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO
# 是否自动启动
spring.quartz.properties.org.quartz.scheduler.startupDelay=0
# 调度器实现类
spring.quartz.properties.org.quartz.scheduler.instanceClass=org.quartz.impl.StdSchedulerFactory
# JobStore实现类
spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
# 数据库表前缀
spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_
# 是否启用集群
spring.quartz.properties.org.quartz.jobStore.isClustered=true
# 数据库连接池最大连接数
spring.quartz.properties.org.quartz.jobStore.maxConnections=10
```
以上是一些Quartz的配置,其中org.quartz.jobStore.tablePrefix是Quartz在数据库中创建表的前缀,可以根据需要修改。
接下来,在应用程序中定义定时任务类,并使用@Scheduled注解指定定时任务的执行时间:
```java
@Component
public class MyJob {
@Scheduled(cron = "0 0 0 * * ?")
public void doSomething() {
// 执行定时任务的代码
}
}
```
在上面的代码中,我们使用@Scheduled注解指定定时任务的执行时间。cron表达式表示该定时任务每天0点执行一次。
最后,启动Spring Boot应用程序,定时任务将按照我们的配置自动执行。
注意:如果要在application.yml中进行配置,请参考Spring Boot官方文档的配置方式。
阅读全文