Преглед изворни кода

!530 新增分布式锁Lock4j异常拦截
* update 新增Redis异常处理器处理Lock4j异常

AprilWind пре 1 година
родитељ
комит
14cedccaf3

+ 30 - 0
ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/handler/RedisExceptionHandler.java

@@ -0,0 +1,30 @@
+package org.dromara.common.redis.handler;
+
+import cn.hutool.http.HttpStatus;
+import com.baomidou.lock.exception.LockFailureException;
+import jakarta.servlet.http.HttpServletRequest;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.R;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+/**
+ * Redis异常处理器
+ *
+ * @author AprilWind
+ */
+@Slf4j
+@RestControllerAdvice
+public class RedisExceptionHandler {
+
+    /**
+     * 分布式锁Lock4j异常
+     */
+    @ExceptionHandler(LockFailureException.class)
+    public R<Void> handleLockFailureException(LockFailureException e, HttpServletRequest request) {
+        String requestURI = request.getRequestURI();
+        log.error("获取锁失败了'{}',发生Lock4j异常." + requestURI, e.getMessage());
+        return R.fail(HttpStatus.HTTP_UNAVAILABLE, "业务处理中,请稍后再试...");
+    }
+
+}