Redissonベースの分散ロック、宣言式注釈方式、

1933 ワード

Lock-Thanos
Redissonベースの分散ロック、宣言式注釈方式、gitアドレス、好きな星を残してください
###一.機能:
  • 公平ロックの再入をサポートし、非公平ロック、書き込みロック、読み取りロック
  • 注釈宣言式設定パラメータをサポート
  • カスタムエラー処理
  • 2.導入項目:1 pomパラメータを導入する:
            
               com.kakuiwong
                  lock-thanos
                  ${lastversion}
            
    

    2アプリケーションプロファイルの作成
    lock.thanos.address=redis://127.0.0.1:6379,redis://127.0.0.2:6379 #     
    lock.thanos.password=123456 #  
    lock.thanos.database=2 #redis   
    lock.thanos.order=0 #aop  
    

    3注釈の導入:
        @LockThanos(key = {"#id"},                                      #  spel  key
                type = LockTypeEnum.FAIRLOCK,                           #   
                lockName = "default",                                   #   
                tryLockTime = 30,                                       #        
                autoUnlockTime = 30,                                    #       
                timeUnit = TimeUnit.SECONDS,                            #    
                exceptionHandler = LockExceptionHandlerDemo.class)      #         
        @GetMapping("lock")
        public Object lock(String id){
            System.out.println(id);
            return id;
        }
    

    4カスタム例外処理:
    //  LockExceptionHandler  ,         
    static class LockExceptionHandlerDemo implements LockExceptionHandler {
    
            @Override
            public Object lockFailHandle(ProceedingJoinPoint joinPoint, ThanosLockI lock, LockParam lockParam) throws Throwable {
                System.out.println("lockFailHandle");
                return joinPoint.proceed();
            }
    
            @Override
            public void unLockFailHandle(ProceedingJoinPoint joinPoint, ThanosLockI lock, LockParam lockParam) {
                System.out.println("unLockFailHandle");
            }
        }