From e298ec2b189848ea5713d8278e23e8c137b3fab2 Mon Sep 17 00:00:00 2001 From: laker <935009066@qq.com> Date: Tue, 20 Dec 2022 16:45:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=86=E5=B8=83=E5=BC=8F?= =?UTF-8?q?=E9=94=81=E8=A1=A8=E7=BB=93=E6=9E=84sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/lock.sql | 9 +++++++++ .../module/sys/controller/SysDictController.java | 15 +++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 sql/lock.sql diff --git a/sql/lock.sql b/sql/lock.sql new file mode 100644 index 0000000..f3705af --- /dev/null +++ b/sql/lock.sql @@ -0,0 +1,9 @@ +CREATE TABLE `distribute_lock` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id', + `lock_key` varchar(50) NOT NULL COMMENT '锁记录key', + `token` varchar(50) NOT NULL COMMENT '锁的token,防止误删其他人的锁', + `thread_id` varchar(50) NOT NULL COMMENT '获取锁的线程id', + `expire` bigint(20) NOT NULL COMMENT '锁的失效时间,时间戳', + PRIMARY KEY (`id`), + UNIQUE KEY `distribute_lock_UN` (`lock_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分布式锁'; diff --git a/src/main/java/com/laker/admin/module/sys/controller/SysDictController.java b/src/main/java/com/laker/admin/module/sys/controller/SysDictController.java index f9fb835..c8d99da 100644 --- a/src/main/java/com/laker/admin/module/sys/controller/SysDictController.java +++ b/src/main/java/com/laker/admin/module/sys/controller/SysDictController.java @@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.laker.admin.framework.aop.metrics.Metrics; -import com.laker.admin.framework.exception.BusinessException; -import com.laker.admin.framework.lock.api.LLock; import com.laker.admin.framework.lock.api.Lock; import com.laker.admin.framework.model.PageResponse; import com.laker.admin.framework.model.Response; @@ -17,9 +15,6 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.time.Duration; -import java.util.Objects; - /** *

* 前端控制器 @@ -52,16 +47,16 @@ public class SysDictController { @ApiOperation(value = "新增或者更新") @SaCheckPermission("dict.update") public Response saveOrUpdate(@RequestBody SysDict param) { - LLock llock = lock.acquire(param.getDictCode(), Duration.ofSeconds(10)); - if (Objects.isNull(llock)) { - throw new BusinessException("其他人正在处理中,请稍后重试"); - } +// LLock llock = lock.acquire(param.getDictCode(), Duration.ofSeconds(10)); +// if (Objects.isNull(llock)) { +// throw new BusinessException("其他人正在处理中,请稍后重试"); +// } try { return Response.ok(sysDictService.saveOrUpdate(param)); } finally { - lock.release(llock); +// lock.release(llock); } }