SpringBoot a menudo usa bloqueos distribuidos redis en el trabajo, como cambiar la cantidad, la integración de primavera redis proporciona una solución, los siguientes son los pasos a seguir.
importación expertaspring-integration-redis
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-redis</artifactId>
<version>5.3.1.RELEASE</version>
</dependency>
Definir RedisLockRegistry
Frijoles
@Bean(destroyMethod = "destroy")
public RedisLockRegistry redisLockRegistry(RedisConnectionFactory redisConnectionFactory) {
return new RedisLockRegistry(redisConnectionFactory, “app_name_lock_registry”);
}
utilizado en el código comercial,
@Autowired
private RedisLockRegistry redisLockRegistry;
Lock lock = redisLockRegistry.obtain("lock_prefix" + id);
try {
boolean got = lock .tryLock(1L, SECONDS);
if(!got){
throw new RuntimeException(msg);
}
} catch (InterruptedException e) {
throw new RuntimeException(msg);
}
try{
//业务逻辑
}catch(Exception e){
}finally{
lock.unlock();
}