shedlock结合springboot使用demo
时间: 2023-09-18 16:05:41 浏览: 45
下面是一个简单的 ShedLock 结合 Spring Boot 使用的示例:
1. 添加依赖
在 `pom.xml` 文件中添加以下依赖:
```xml
<dependency>
<groupId>net.javacrumbs.shedlock</groupId>
<artifactId>shedlock-spring</artifactId>
<version>4.23.0</version>
</dependency>
```
2. 配置数据库
在 `application.properties` 文件中配置数据库连接信息,例如:
```
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
```
3. 创建定时任务
在 Spring Boot 应用程序中创建一个定时任务,例如:
```java
@Component
public class MyTask {
@Scheduled(cron = "0 0/5 * * * ?")
@SchedulerLock(name = "myTask", lockAtMostFor = "5m", lockAtLeastFor = "1m")
public void run() {
// do something
}
}
```
在这个例子中,我们创建了一个名为 `MyTask` 的定时任务。使用 `@Scheduled` 注解指定了任务的执行时间,同时使用 `@SchedulerLock` 注解指定了任务的锁定策略。其中,`name` 参数指定了任务的名称,`lockAtMostFor` 参数指定了任务最多可以被锁定的时间,`lockAtLeastFor` 参数指定了任务最少需要被锁定的时间。
4. 启用 ShedLock
在 Spring Boot 应用程序的启动类上添加 `@EnableSchedulerLock` 注解,例如:
```java
@SpringBootApplication
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
```
在这个例子中,我们使用 `@EnableSchedulerLock` 注解启用了 ShedLock,并指定了默认的最大锁定时间为 30 秒。
5. 运行应用程序
运行 Spring Boot 应用程序,并查看日志信息。如果一切正常,你应该可以看到 ShedLock 所输出的日志信息,其中包括任务被锁定的时间信息等。