SpringBoot使用shedlock做定時任務(wù)的實現(xiàn)示例
更新時間:2025年07月24日 09:31:11 作者:caddwu
本文主要介紹了SpringBoot使用shedlock做定時任務(wù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
1、pom依賴
<dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-spring</artifactId> <version>4.15.1</version> </dependency> <dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-provider-redis-spring</artifactId> <version>4.15.1</version> </dependency>
2、shedlock使用Redis鎖
解決多實例下任務(wù)重復(fù)執(zhí)行問題。
@Configuration
public class ScheduleLockConfig {
@Bean
public LockProvider lockProvider(RedisConnectionFactory redisConnectionFactory) {
return new RedisLockProvider(redisConnectionFactory);
}
}3、配置定時任務(wù)線程池
解決多任務(wù)并發(fā)執(zhí)行時等待問題。
@Configuration
public class ScheduleConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(10);
taskScheduler.setThreadNamePrefix("taskScheduler-");
taskRegistrar.setScheduler(taskScheduler);
}
}4、定時任務(wù)代碼
@Configuration
public class ScheduleTask {
/**
* Concurrent task 1.
*/
@Scheduled(cron = "0/5 * * * * ?")
@SchedulerLock(name = "syncTask1")
public void syncTask1() throws InterruptedException {
System.err.println("并發(fā)執(zhí)行任務(wù)1: " + LocalDateTime.now());
Thread.sleep(7000);
}
/**
* Concurrent task 2.
*/
@Scheduled(cron = "0/5 * * * * ?")
@SchedulerLock(name = "syncTask2")
public void syncTask2() {
System.err.println("并發(fā)執(zhí)行任務(wù)2: " + LocalDateTime.now());
}
}到此這篇關(guān)于SpringBoot使用shedlock做定時任務(wù)的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringBoot shedlock定時任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot項目中實現(xiàn)文件上傳功能的示例
這篇文章主要介紹了Spring Boot項目中實現(xiàn)文件上傳功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
mybatis查詢數(shù)據(jù)賦值到model里面為空的解決
這篇文章主要介紹了mybatis查詢數(shù)據(jù)賦值到model里面為空的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Java基于MySQL實現(xiàn)學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細介紹了Java基于MySQL實現(xiàn)學(xué)生管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01

