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());
功能演示文章插图
文章插图
文章插图
- 国家发布“铁令”,微信、支付宝始料未及,必须作出整改
- 1399元起!开年首款5G手机正式发布:外观惊艳
- realme真我V15国潮锦鲤手机发布《国家宝藏》联名设计
- 苹果为中国用户发布牛年限量款AirPods Pro,售价人民币1999元
- 三星发布NeoQLED,MICROLED电视新品
- 5G发布后,4G变慢,电信高管道出实情,你的4G还能用多久?
- 1260元起!红米9T正式发布:充电器才是最大亮点
- 尼康发布服务公告:将不再为镜头及配件提供全球联保服务
- 华为认证HCIP-GaussDB-OLTP发布,下一个高级DBA会是你吗
- AMDCES发布会1月13日凌晨0点开始:苏姿丰作主题演讲