当前位置: 代码迷 >> 综合 >> SpringBoot分布式锁ShedLock
  详细解决方案

SpringBoot分布式锁ShedLock

热度:57   发布时间:2024-01-25 19:41:56.0

一、分布式锁配置

(1)redis锁

@Configuration
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
public class DataSourceConfig {@Beanpublic LockProvider scheduledLockConfiguration(@Autowired RedisConnectionFactory connectionFactory) {return new RedisLockProvider(connectionFactory);}}

(2)数据库锁

@Configuration
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
public class DataSourceConfig {@Beanpublic scheduledLockConfiguration(@Autowired DataSource dataSource) {return new JdbcTemplateLockProvider(dataSource);}}

 

二、定时任务配置

@Component
public class CronTask {@Scheduled(cron="0 0/1 * * * ?")@SchedulerLock(name = "test-lock:testMethod", lockAtMostFor = 3 * 60 * 1000, lockAtLeastFor = 30 * 1000)public void testMethod(){//do something}}