分布式鎖只需要一行注解,Mars-java框架-創(chuàng)新互聯(lián)

在要加鎖的方法上添加RedisLock注解

@RedisLock(key = "自己定義一個key")
public int insert(){
  return 1;
}

這個鎖會在事務(wù)開啟之前獲取,在事務(wù)提交以后解鎖,并且只對MarsBean有效,對API和DAO無效

目前創(chuàng)新互聯(lián)已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、鶴城網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

如果你不需要鎖住整個方法,只需要鎖一小段代碼,那么可以用下面的方式

在MarsBean里面注入MarsRedisLock對象

@MarsBean("testService")
public class TestService {

    @MarsWrite("marsRedisLock")
    private MarsRedisLock marsRedisLock;

}

加鎖

Boolean haslock = marsRedisLock.lock("自己定義一個key");
if(haslock){
    執(zhí)行加鎖后才能執(zhí)行的代碼
}

解鎖

marsRedisLock.unlock("加鎖的時候傳入的那個key");

詳細(xì)說明

無論是用注解還是lock方法,如果沒有獲取到鎖,會等待20秒,20秒內(nèi)如果能獲取到鎖,則正常往下執(zhí)行,20秒內(nèi)沒獲取到鎖,則直接停止本次操作

lock方法 會返回true和false來表示有無獲取到鎖

鎖的有效時間為20秒,20秒以后會自動解鎖

官網(wǎng)

http://mars-framework.com/

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

網(wǎng)頁題目:分布式鎖只需要一行注解,Mars-java框架-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://muchs.cn/article20/dddico.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、微信公眾號、網(wǎng)站設(shè)計動態(tài)網(wǎng)站、用戶體驗品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司