Martian框架发布 3.0.3 版本,Redis分布式锁
项目简介Martian 是一个声明式 API 编程(DAP)框架 , 可以帮助你快速开发后端服务 。
- 以HttpServer作为 http服务 , 彻底脱离Tomcat这一类的Web容器和Servlet , 同时也让项目减少了几个依赖
- 声明式API , 让Controller变成了一个interface , 降低了开发的工作量
- 拥有其他web框架 拥有的大部分功能 , 比如AOP,IOC,声明式事务,异常监听等
- 拥有自主开发的持久层框架 , 并天然的集成到了Martian中
- 支持分布式开发
@RedisLock(key = "自己定义一个key", maxWait = 3000,retry = true, retryRate = 100, timeOut = 1000)public int insert(){return 1;}
这个锁会在事务开启之前获取 , 在事务提交以后解锁 , 并且只对MarsBean有效 , 对API和DAO无效RedisLock注解的参数解释
- key: 唯一标识 , 保证全局唯一
- retry: 如果获取锁失败 , 是否重试(true 是 , false 否) , 只有设置为true , 下面的几个属性才生效 | 默认为 false
- retryRate: 重试频率(多少毫秒重试一次)| 默认100毫秒
- maxWait: 最大等待时间(重试多少毫秒以后 , 就放弃等待) | 默认3000毫秒
- timeOut: 失效时间(多少毫秒后 , 自动解锁) | 默认10000毫秒
在MarsBean里面注入MarsRedisLock对象
@MarsBean("testService")public class TestService {@MarsWrite("marsRedisLock")private MarsRedisLock marsRedisLock;}
加锁【Martian框架发布 3.0.3 版本,Redis分布式锁】LockModel lockModel = new LockModel();ockModel.setKey("设置一个key , 不同业务之间唯一 , 保证每次请求都是一样的key");ockModel.setValue("设置一个唯一的value , 每次请求都是唯一的");// 失效时间ockModel.setTimeOut(10000);// 重试频率(每隔几毫秒重试一次)ockModel.setRetryRate(300);// 没获取到锁 , 是否重试lockModel.setRetry(true);// 最大重试时间(重试多久没成功 , 就直接放弃)ockModel.setMaxWait(5000);Boolean haslock = marsRedisLock.lock(lockModel);if(haslock){执行加锁后才能执行的代码}
解锁marsRedisLock.unlock(lockModel.getKey(), lockModel.getValue());
功能演示文章插图
文章插图
文章插图
推荐阅读
- LG发布LG UltraFine OLED Pro显示器 首次引入OLED面板
- Kensington发布StudioDock 将iPad Pro扩展坞与无线充电器相结合
- 金士顿发布Workflow Station - 为内容创作者设计的模块化底座
- 微软新Surface Pro 7 Plus发布 拥有更大的电池、可拆卸的SSD和LTE模组
- 三星公司发布2021款数字座舱 集成诸多高科技
- 搭载骁龙888处理器+120W超充 横屏性能旗舰iQOO 7正式发布
- 499元!魅族新耳机正式发布:这外观太熟悉了
- 3798元起!iQOO 7正式发布:120W快充+骁龙888
- iQOO 7手机发布:首款120W快充骁龙888旗舰、120Hz全感触控
- “性能旗舰”iQOO 7正式发布:感受全感操控3798元起