分享一個關於分佈式鎖的新東西,mars,它可以很方便地實現加鎖和解鎖,有興趣的可以試下
本次更新如下
- 新增了分佈式鎖
- 新增了MarsBean初始化
- 優化了代碼結構,以及修復了已知的bug
分佈式鎖
在MarsBean裡面注入MarsRedisLock對象
@MarsBean("testService")
public class TestService {
@MarsWrite("marsRedisLock")
private MarsRedisLock marsRedisLock;
}
加鎖
Boolean haslock = marsRedisLock.lock("自己定義一個key");
if(hashlock){
執行加鎖後才能執行的代碼
}
解鎖
marsRedisLock.unlock("加鎖的時候傳入的那個key");
詳細說明
lock方法如果沒有獲取到鎖,會等待20秒,20秒內如果能獲取到鎖,則正常返回true,然後往下執行,20秒內沒獲取到鎖,則返回false,代表加鎖失敗。
Boolean haslock = marsRedisLock.lock("自己定義一個key");
if(hashlock){
執行加鎖後才能執行的代碼
}
初始化MarsBean
讓MarsBean實現InitBean接口
@MarsBean("testService")
public class TestService implements InitBean {
}
重寫init方法
@MarsBean("testService")
public class TestService implements InitBean {
public void init(){
重寫這個方法,然後在裡面寫你要的初始化操作
}
}
文章轉載自 OSCHINA 社區 [http://www.oschina.net]
本文標題:分佈式鎖只需要兩行代碼,Mars 3.0.6 發佈
本文地址:https://www.oschina.net/news/111382/mars-java-3-0-6-released
閱讀更多 達升笑聊IT 的文章