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;}
加锁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){执行加锁后才能执行的代码}
解锁【Martian框架发布 3.0.3 版本,Redis分布式锁】marsRedisLock.unlock(lockModel.getKey(), lockModel.getValue());
功能演示文章插图
文章插图
文章插图
- Blade|售价2798元 中兴Blade 20 Pro 5G手机发布 骁龙765G配四摄
- 承受|折叠屏iPhone已开始测试?要求能承受10万次折叠,或在2年后发布
- 早报:高通骁龙888正式发布 嫦娥五号传回首张图片
- 建设|《青岛市城市云脑建设指引》发布
- 优化|微软亚洲研究院发布开源平台“群策 MARO” 用于多智能体资源调度优化
- 自动驾驶汽车|海外|自动驾驶无法可依?美国多个团体联合发布自动驾驶立法大纲
- 中国视频|人日评论点赞!OPPO成视频手机先行者,新技术或下月发布
- 将要发布|高通下一代处理器不叫骁龙875,而是叫骁龙888
- 确认|小米11Pro已确认,首发骁龙875,将于本月提前发布
- 骁龙|中兴天机Axon 20 5G 至尊版发布:屏下镜头 搭载骁龙765G