spring-redis-distributed-lock
spring-redis-distributed-lock — расширение проекта redisLock.
Это основанный на Redis распределённый замок, который можно применять в проектах SpringBoot с несколькими узлами для предотвращения повторных вызовов бизнес-логики.
Он прост и удобен в использовании: достаточно добавить аннотации к методам.
Можно настроить блокировку как для одного компьютера, так и для нескольких.
@EnableLock
public class XXServiceApplication {
public static void main(String[] args) {
SpringApplication.run(XXServiceApplication.class, args);
}
}
@Lock(policy = LockPolicy.Lock, featureParams = MacAddressFeatureParam.class)
public boolean service(@LockKey int id, @LockKey String name) {
//бизнес-код
}
Имя | Тип | Значение по умолчанию | Примечание |
---|---|---|---|
policy | LockPolicy | Lock | Стратегия блокировки. По умолчанию Lock: если блокировка не получена, сразу возвращается; SpinLock: спин-блокировка, которая возвращает значение после достижения таймаута; BlockLock: продолжает вращаться до получения блокировки. |
keyPrex | String | имя класса + имя метода | Префикс ключа Redis. Если пусто, используется имя класса и имя метода по умолчанию. |
featureParams | LockFeatureParam | Нет | Набор параметров признаков блокировки, которые можно использовать для добавления параметров, не связанных с бизнес-логикой, чтобы различать блокировки и предотвращать конкуренцию блокировок. Можно реализовать LockFeatureParam для расширения пользовательских параметров, отличных от бизнес-логики. |
lockTime | int | 60 | Время удержания блокировки в Redis, в секундах. |
timetOut | long | 300 | Таймаут спин-блокировки, в миллисекундах. |
@Lock
public boolean service() {
//Бизнес-код
}
@Lock
public boolean service(@LockKey int id) {
//Бизнес-код
}
@Lock(featureParams = MacAddressFeatureParam.class)
public boolean service(@LockKey int id) {
//Бизнес-код
}
@Lock(policy = LockPolicy.SpinLock, timetOut = 500L)
public boolean service(@LockKey int id) {
//Бизнес-код
}
@Lock(policy = LockPolicy.BlockLock)
public boolean service(@LockKey int id) {
//Бизнес-код
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )