1.一種分布式優(yōu)先級排隊鎖的實現(xiàn)方法,其特征在于:所述的方法包括如下步驟:
步驟1:給每個請求設(shè)置一個優(yōu)先級和優(yōu)先級策略,并開始獲取鎖;
步驟2:判斷數(shù)據(jù)庫互斥字段是否為空,如果為空,則執(zhí)行步驟3,如果不為空則執(zhí)行步驟6;
步驟3:判斷隊列是否有等待請求,如果沒有等待的請求,則執(zhí)行步驟9,如果有等待的請求,則執(zhí)行步驟4;
步驟4:判斷請求自己是否在隊列中,如果在隊列中,則執(zhí)行步驟5;否則執(zhí)行步驟6;
步驟5:判斷請求自己是否在第一位,如果是第一位,則執(zhí)行步驟9;否則等待一段時間后,重新執(zhí)行步驟2,繼續(xù)獲取鎖;
步驟6:根據(jù)優(yōu)先級策略提升該請求的優(yōu)先級策略;
步驟7:優(yōu)先級是否達到閾值,如果優(yōu)先級達到預(yù)設(shè)的優(yōu)先級閾值,則執(zhí)行步驟8,否則等待一段時間后,重新執(zhí)行步驟2,繼續(xù)獲取鎖;
步驟8:把請求放入到排隊隊列,重新執(zhí)行步驟2,繼續(xù)獲取鎖;
步驟9:設(shè)置數(shù)據(jù)庫互斥字段,如果設(shè)置成功,則執(zhí)行步驟10,如果設(shè)置失敗,執(zhí)行步驟6;
步驟10:處理請求并且把數(shù)據(jù)庫互斥字段清空,流程結(jié)束。
2.根據(jù)權(quán)利要求1所述的分布式優(yōu)先級排隊鎖的實現(xiàn)方法,其特征在于:所述優(yōu)先級策略是設(shè)置互斥字段失敗后優(yōu)先級增加的步長或者是根據(jù)公式計算出新的優(yōu)先級;
所述數(shù)據(jù)庫互斥字段是指這個字段只能一個請求進行設(shè)置更新,一旦一個請求操作成功,則其他請求無法進行操作成功。
3.根據(jù)權(quán)利要求1所述的分布式優(yōu)先級排隊鎖的實現(xiàn)方法,其特征在于:
所述排隊隊列是請求的隊列,在此隊列中請求按照順序來獲取鎖,并且系統(tǒng)會優(yōu)先處理隊列中的請求。
4.根據(jù)權(quán)利要求2所述的分布式優(yōu)先級排隊鎖的實現(xiàn)方法,其特征在于:
所述排隊隊列是請求的隊列,在此隊列中請求按照順序來獲取鎖,并且系統(tǒng)會優(yōu)先處理隊列中的請求。
5.根據(jù)權(quán)利要求1至4任一項所述的分布式優(yōu)先級排隊鎖的實現(xiàn)方法,其特征在于:
所述的閾值是預(yù)先設(shè)定的一個優(yōu)先級值,當請求的優(yōu)先級達到這個值之后,將可以進入到排隊隊列中。
6.根據(jù)權(quán)利要求1至4任一項所述的分布式優(yōu)先級排隊鎖的實現(xiàn)方法,其特征在于:所述的獲取鎖是指獲取一個令牌,只有拿到這個令牌請求才能執(zhí)行,避免請求并發(fā)處理導(dǎo)致數(shù)據(jù)出錯。
7.根據(jù)權(quán)利要求5所述的分布式優(yōu)先級排隊鎖的實現(xiàn)方法,其特征在于:所述的獲取鎖是指獲取一個令牌,只有拿到這個令牌請求才能執(zhí)行,避免請求并發(fā)處理導(dǎo)致數(shù)據(jù)出錯。