一種文件鎖的狀態(tài)維護方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種文件鎖的狀態(tài)維護方法及系統(tǒng)。所述文件鎖的狀態(tài)維護方法包括:接收對文件的加鎖請求,對所述文件進行文件鎖鎖定處理,發(fā)送所述文件鎖的鎖定處理結果;在鎖定處理成功后將所述文件鎖加入系統(tǒng)文件鎖記錄中,所述文件鎖記錄包括修改時間屬性,所述文件鎖記錄的修改時間設定為所述文件鎖加入系統(tǒng)文件鎖記錄的時間;對系統(tǒng)文件鎖記錄中的文件鎖記錄進行狀態(tài)檢查處理;所述狀態(tài)檢查處理包括:當所述文件鎖記錄中的修改時間與當前系統(tǒng)時間的間隔大于或者等于預設時間值時,對所述文件鎖記錄對應的文件鎖進行強制解鎖處理,并將所述文件鎖記錄從系統(tǒng)文件鎖記錄中刪除。本發(fā)明能夠快速和準確地解除處于僵尸狀態(tài)的文件鎖。
【專利說明】
一種文件鎖的狀態(tài)維護方法及系統(tǒng)
技術領域
[0001]本發(fā)明涉及一種文件管理技術領域,特別是涉及一種文件鎖的狀態(tài)維護方法及系統(tǒng)。
【背景技術】
[0002]隨著電子信息化的普及和發(fā)展,文件共享和協(xié)作系統(tǒng)也被越來越多的企業(yè)和單位所采用?;旧?,這是指一種允許多個用戶基于同一個文檔協(xié)同工作的軟件系統(tǒng)。在這個系統(tǒng)中,不同用戶可以從不同電腦終端或移動設備通過互聯網來使用同一個文件。為了解決多個用戶對同一個文件的操作沖突問題,業(yè)界普遍采用了文件鎖機制,這種機制將多個用戶劃分為兩類角色:鎖定者和被鎖定者,只有鎖定者才能對文件進行寫入和修改操作,而被鎖定者則只能對文件進行讀取操作,不能進行寫入操作。
[0003]—旦文件被鎖定,我們稱該文件進入了鎖定狀態(tài),鎖定狀態(tài)一直持續(xù)到鎖定者解除鎖定為止。通常這個狀態(tài)不會持續(xù)太久,因為鎖定者會在完成對文件的修改操作后及時對文件進行解鎖。但在某些異常情況下,比如鎖定者的電腦終端意外斷電,或者鎖定者的移動設備無法連接網絡等等,這樣鎖定者就無法及時地對文件進行解鎖,這個文件鎖就進入了僵尸狀態(tài),一直持續(xù)下去,導致其他用戶一直等待鎖定者解鎖而無法順利開展他們的文檔工作。
[0004]鑒于此,如何找到一種能夠及時準確地管理文件鎖狀態(tài)的技術方案就成了本領域技術人員亟待解決的問題。
【發(fā)明內容】
[0005]鑒于以上所述現有技術的缺點,本發(fā)明的目的在于提供一種文件鎖的狀態(tài)維護方法及系統(tǒng),用于解決現有技術中但在某些異常情況下導致文件鎖進入僵尸狀態(tài)的問題。
[0006]為實現上述目的及其他相關目的,本發(fā)明提供一種文件鎖的狀態(tài)維護方法,所述文件鎖的狀態(tài)維護方法包括:接收對文件的加鎖請求,對所述文件進行文件鎖鎖定處理,發(fā)送所述文件鎖的鎖定處理結果;在鎖定處理成功后將所述文件鎖加入系統(tǒng)文件鎖記錄中,所述文件鎖記錄包括修改時間屬性,所述文件鎖記錄的修改時間設定為所述文件鎖加入系統(tǒng)文件鎖記錄的時間;對系統(tǒng)文件鎖記錄中的文件鎖記錄進行狀態(tài)檢查處理;所述狀態(tài)檢查處理包括:當所述文件鎖記錄中的修改時間與當前系統(tǒng)時間的間隔大于或者等于預設時間值時,對所述文件鎖記錄對應的文件鎖進行強制解鎖處理,并將所述文件鎖記錄從系統(tǒng)文件鎖記錄中刪除。
[0007]可選地,所述文件鎖的狀態(tài)維護方法還包括:在每個狀態(tài)檢查周期對系統(tǒng)文件鎖記錄中的文件鎖記錄進行一次狀態(tài)檢查處理。
[0008]可選地,所述預設時間值包括30秒。
[0009]可選地,所述文件鎖的狀態(tài)維護方法還包括:接收對文件鎖的刷新請求,在系統(tǒng)文件鎖記錄中查找所述文件鎖;當找到匹配的文件鎖記錄時,修改所述文件鎖記錄的修改時間為接收到所述文件鎖的刷新請求的時間,并發(fā)送所述文件鎖刷新成功的刷新結果;當未找到匹配的文件鎖記錄時,發(fā)送所述文件鎖刷新失敗的刷新結果。
[0010]本發(fā)明還提供一種文件鎖的狀態(tài)維護方法,所述文件鎖的狀態(tài)維護方法包括:向服務器發(fā)送文件加鎖請求并接收反饋的鎖定處理結果;當所述文件鎖鎖定成功時,將所述文件鎖加入本地文件鎖記錄中;對本地文件鎖記錄中的文件鎖進行刷新處理,所述刷新處理包括:向服務器發(fā)送所述文件鎖的刷新請求并接收反饋的刷新結果;當所述文件鎖刷新失敗時,將所述文件鎖從本地文件鎖記錄中刪除。
[0011]可選地,所述文件鎖的狀態(tài)維護方法還包括:在每個刷新處理周期對本地文件鎖記錄中的文件鎖進行一次刷新處理。
[0012]本發(fā)明提供一種文件鎖的狀態(tài)維護系統(tǒng),所述文件鎖的狀態(tài)維護系統(tǒng)包括服務器,所述服務器包括:文件鎖操作管理模塊,用于接收對文件的加鎖請求,對所述文件進行文件鎖鎖定處理,發(fā)送所述文件鎖的鎖定處理結果;在鎖定處理成功后將所述文件鎖加入系統(tǒng)文件鎖記錄中,所述文件鎖記錄包括修改時間屬性,所述文件鎖記錄的修改時間設定為所述文件鎖加入系統(tǒng)文件鎖記錄的時間;文件鎖狀態(tài)管理模塊,用于對系統(tǒng)文件鎖記錄中的文件鎖記錄進行狀態(tài)檢查處理;所述狀態(tài)檢查處理包括:當所述文件鎖記錄中的修改時間與當前系統(tǒng)時間的間隔大于或者等于預設時間值時,對所述文件鎖記錄對應的文件鎖進行強制解鎖處理,并將所述文件鎖記錄從系統(tǒng)文件鎖記錄中刪除。
[0013]可選地,所述文件鎖狀態(tài)管理模塊還用于:在每個狀態(tài)檢查周期對系統(tǒng)文件鎖記錄中的文件鎖記錄進行一次狀態(tài)檢查處理。
[0014]可選地,所述預設時間值包括30秒。
[0015]可選地,所述文件鎖狀態(tài)管理模塊還用于:接收對文件鎖的刷新請求,在系統(tǒng)文件鎖記錄中查找所述文件鎖;當找到匹配的文件鎖記錄時,修改所述文件鎖記錄的修改時間為接收到所述文件鎖的刷新請求的時間,并發(fā)送所述文件鎖刷新成功的刷新結果;當未找到匹配的文件鎖記錄時,發(fā)送所述文件鎖刷新失敗的刷新結果。
[0016]本發(fā)明還提供一種文件鎖的狀態(tài)維護系統(tǒng),所述文件鎖的狀態(tài)維護系統(tǒng)包括客戶端,所述客戶端包括:文件鎖操作模塊,用于向服務器發(fā)送文件加鎖請求并接收反饋的鎖定處理結果;當所述文件鎖鎖定成功時,將所述文件鎖加入本地文件鎖記錄中;文件鎖狀態(tài)維護模塊,用于對本地文件鎖記錄中的文件鎖進行刷新處理,所述刷新處理包括:向服務器發(fā)送所述文件鎖的刷新請求并接收反饋的刷新結果;當所述文件鎖刷新失敗時,將所述文件鎖從本地文件鎖記錄中刪除。
[0017]可選地,所述文件鎖狀態(tài)維護模塊還用于:在每個刷新處理周期對本地文件鎖記錄中的文件鎖進行一次刷新處理。
[0018]如上所述,本發(fā)明的一種文件鎖的狀態(tài)維護方法及系統(tǒng),具有以下有益效果:I)由于采用了文件鎖狀態(tài)定時刷新機制,當鎖定者所處客戶端發(fā)生斷電或斷網等意外情況時,鎖定者所擁有的文件鎖就無法被繼續(xù)刷新,所以服務器能根據文件鎖的刷新信息及時和準確的識別進入僵尸狀態(tài)的文件鎖,避免了超時方案中可能出現的不及時和不準確的問題;
2)由于采用了文件鎖狀態(tài)定時檢查機制,文件鎖狀態(tài)的檢查和維護都是系統(tǒng)自動進行的,不需要人為溝通文件鎖的狀態(tài),也不需要管理員參與進來進行強制解鎖等,所以省去了人工溝通成本,減少了不必要的管理員工作;3)由于系統(tǒng)對處于僵尸狀態(tài)的文件鎖會自動強制解鎖,提升了文件鎖系統(tǒng)的容錯性,所有其他用戶在異常情況下仍然可以及時順利地進行后續(xù)文檔工作,提升了用戶的文檔協(xié)作效率。本發(fā)明通過采用文件鎖狀態(tài)定時刷新機制和文件鎖狀態(tài)定時檢查機制,實現了對文件鎖狀態(tài)的準實時維護,并快速和準確地解除處于僵尸狀態(tài)的文件鎖,提升解鎖的及時性和準確性,同時省去人工溝通成本,減輕管理員的管理負荷。
【附圖說明】
[0019]圖1顯示為本發(fā)明的文件鎖的狀態(tài)維護方法的一實施例的流程示意圖。
[0020]圖2顯示為本發(fā)明的文件鎖的狀態(tài)維護方法的另一實施例的流程示意圖。
[0021]圖3顯示為本發(fā)明的文件鎖的狀態(tài)維護系統(tǒng)的一實施例的模塊示意圖。
[0022]圖4顯示為本發(fā)明的文件鎖的狀態(tài)維護系統(tǒng)的一實施例的加鎖流程示意圖。
[0023]圖5顯示為本發(fā)明的文件鎖的狀態(tài)維護系統(tǒng)的一實施例的刷新流程示意圖。
[0024]圖6顯示為本發(fā)明的文件鎖的狀態(tài)維護系統(tǒng)的一實施例的狀態(tài)檢查流程示意圖。
[0025]元件標號說明
[0026]I文件鎖的狀態(tài)維護系統(tǒng)
[0027]11服務器
[0028]111文件鎖操作管理模塊
[0029]112文件鎖狀態(tài)管理模塊
[0030]12客戶端
[0031]121文件鎖操作模塊
[0032]122文件鎖狀態(tài)維護模塊
[0033]Sll ?S12步驟
[0034]S21 ?S22步驟
[0035]S201 ?S205步驟
[0036]S301 ?S308步驟
[0037]S401 ?S407步驟
【具體實施方式】
[0038]以下通過特定的具體實例說明本發(fā)明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節(jié)也可以基于不同觀點與應用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。
[0039]需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構想,遂圖式中僅顯示與本發(fā)明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復雜。
[0040]為實現上述目的及其他相關目的,本發(fā)明提供一種文件鎖的狀態(tài)維護方法,在一個實施例中,如圖1所示,所述文件鎖的狀態(tài)維護方法包括:
[0041 ]步驟S11,接收對文件的加鎖請求,對所述文件進行文件鎖鎖定處理,發(fā)送所述文件鎖的鎖定處理結果;在鎖定處理成功后將所述文件鎖加入系統(tǒng)文件鎖記錄中,所述文件鎖記錄包括修改時間屬性,所述文件鎖記錄的修改時間設定為所述文件鎖加入系統(tǒng)文件鎖記錄的時間。
[0042]步驟S12,對系統(tǒng)文件鎖記錄中的文件鎖記錄進行狀態(tài)檢查處理;所述狀態(tài)檢查處理包括:當所述文件鎖記錄中的修改時間與當前系統(tǒng)時間的間隔大于或者等于預設時間值時,對所述文件鎖記錄對應的文件鎖進行強制解鎖處理,并將所述文件鎖記錄從系統(tǒng)文件鎖記錄中刪除。在一個實施例中,所述文件鎖的狀態(tài)維護方法還包括:在每個狀態(tài)檢查周期對系統(tǒng)文件鎖記錄中的文件鎖記錄進行一次狀態(tài)檢查處理。所述預設時間值可以由用戶設定,如設定為30秒。
[0043]在一個實施例中,所述文件鎖的狀態(tài)維護方法還包括:接收對文件鎖的刷新請求,在系統(tǒng)文件鎖記錄中查找所述文件鎖;當找到匹配的文件鎖記錄時,修改所述文件鎖記錄的修改時間為接收到所述文件鎖的刷新請求的時間,并發(fā)送所述文件鎖刷新成功的刷新結果;當未找到匹配的文件鎖記錄時,發(fā)送所述文件鎖刷新失敗的刷新結果。
[0044]本發(fā)明還提供一種文件鎖的狀態(tài)維護方法,在一個實施例中,如圖2所示,所述文件鎖的狀態(tài)維護方法包括
[0045]步驟S21,向服務器發(fā)送文件加鎖請求并接收反饋的鎖定處理結果;當所述文件鎖鎖定成功時,將所述文件鎖加入本地文件鎖記錄中。
[0046]步驟S22,對本地文件鎖記錄中的文件鎖進行刷新處理,所述刷新處理包括:向服務器發(fā)送所述文件鎖的刷新請求并接收反饋的刷新結果;當所述文件鎖刷新失敗時,將所述文件鎖從本地文件鎖記錄中刪除。所述文件鎖的狀態(tài)維護方法還包括:在每個刷新處理周期對本地文件鎖記錄中的文件鎖進行一次刷新處理。
[0047]在一個實施例中,所述文件鎖的狀態(tài)維護方法通過采用文件鎖狀態(tài)定時刷新機制和文件鎖狀態(tài)定時檢查機制,實現了對文件鎖狀態(tài)的準實時維護,并快速和準確地解除處于僵尸狀態(tài)的文件鎖,具體包括如下步驟:
[0048]添加文件鎖步驟:
[0049]I)客戶端向服務器發(fā)起加鎖請求;
[0050]2)服務器響應上述加鎖請求,并對文件進行鎖定處理,如果處理成功則執(zhí)行步驟
3),否則執(zhí)行步驟4);
[0051 ] 3)服務器將上述文件鎖添加進系統(tǒng)內所有文件鎖記錄集合中;
[0052]4)客戶端接收服務器加鎖失敗結果,直接返回;
[0053]5)客戶端將上述文件鎖添加進本地所有文件鎖記錄集合中。
[0054]定時刷新文件鎖狀態(tài)步驟:
[0055]I)客戶端從本地所有的文件鎖記錄集合中獲取一條記錄,如果獲取成功則執(zhí)行步驟2),否則等待一段時間后繼續(xù)執(zhí)行步驟I);
[0056]2)客戶端對獲取的文件鎖向服務器發(fā)起刷新鎖狀態(tài)的請求;
[0057]3)服務器響應上述刷新鎖請求,并刷新文件鎖的狀態(tài)信息,這里主要是刷新文件鎖的最近刷新時間,如果刷新成功則進入步驟4),否則進入步驟5);
[0058]4)客戶端接收服務器刷新鎖的成功結果,繼續(xù)執(zhí)行步驟I);
[0059]5)客戶端接收服務器刷新鎖的失敗結果,將對應文件鎖從本地所有文件鎖記錄集合中移除,繼續(xù)執(zhí)行步驟I)。
[0060]定時檢查文件鎖狀態(tài)步驟:
[0061]I)服務器從系統(tǒng)內所有文件鎖記錄集合中獲取一條記錄,如果獲取成功則執(zhí)行步驟2),否則等待一段時間后繼續(xù)執(zhí)行步驟I);
[0062]2)服務器對獲取的文件鎖進行狀態(tài)檢查處理,這里主要是檢查文件鎖的最近刷新時間與當前系統(tǒng)時間之前的間隔是否在預設值之內,如果是則繼續(xù)執(zhí)行步驟I),否則執(zhí)行步驟3);
[0063]3)服務器對上述過期的文件鎖進行強制解鎖處理,并將其從系統(tǒng)內所有文件鎖記錄集合中移除,繼續(xù)執(zhí)行步驟I)。
[0064]本發(fā)明提供一種文件鎖的狀態(tài)維護系統(tǒng),在一個實施例中,如圖3所示,所述文件鎖的狀態(tài)維護系統(tǒng)I包括一個服務器11和多個客戶端12。其中,所述服務器11包括文件鎖操作管理模塊111和文件鎖狀態(tài)管理模塊112。其中:
[0065]文件鎖操作管理模塊111用于接收對文件的加鎖請求,對所述文件進行文件鎖鎖定處理,發(fā)送所述文件鎖的鎖定處理結果;在鎖定處理成功后將所述文件鎖加入系統(tǒng)文件鎖記錄中,所述文件鎖記錄包括修改時間屬性,所述文件鎖記錄的修改時間設定為所述文件鎖加入系統(tǒng)文件鎖記錄的時間;
[0066]文件鎖狀態(tài)管理模塊112與文件鎖操作管理模塊111相連,用于對系統(tǒng)文件鎖記錄中的文件鎖記錄進行狀態(tài)檢查處理;所述狀態(tài)檢查處理包括:當所述文件鎖記錄中的修改時間與當前系統(tǒng)時間的間隔大于或者等于預設時間值時,對所述文件鎖記錄對應的文件鎖進行強制解鎖處理,并將所述文件鎖記錄從系統(tǒng)文件鎖記錄中刪除。所述文件鎖狀態(tài)管理模塊112還用于:在每個狀態(tài)檢查周期對系統(tǒng)文件鎖記錄中的文件鎖記錄進行一次狀態(tài)檢查處理。所述預設時間值包括30秒。在一個實施例中,所述文件鎖狀態(tài)管理模塊112還用于:接收對文件鎖的刷新請求,在系統(tǒng)文件鎖記錄中查找所述文件鎖;當找到匹配的文件鎖記錄時,修改所述文件鎖記錄的修改時間為接收到所述文件鎖的刷新請求的時間,并發(fā)送所述文件鎖刷新成功的刷新結果;當未找到匹配的文件鎖記錄時,發(fā)送所述文件鎖刷新失敗的刷新結果。
[0067]本發(fā)明還提供一種文件鎖的狀態(tài)維護系統(tǒng),如圖3所示,所述文件鎖的狀態(tài)維護系統(tǒng)I包括服務器11和多個客戶端12,所述客戶端12包括文件鎖操作模塊121和文件鎖狀態(tài)維護模塊122:
[0068]文件鎖操作模塊121用于向服務器發(fā)送文件加鎖請求并接收反饋的鎖定處理結果;當所述文件鎖鎖定成功時,將所述文件鎖加入本地文件鎖記錄中。
[0069]文件鎖狀態(tài)維護模塊122與文件鎖操作模塊121相連,用于對本地文件鎖記錄中的文件鎖進行刷新處理,所述刷新處理包括:向服務器發(fā)送所述文件鎖的刷新請求并接收反饋的刷新結果;當所述文件鎖刷新失敗時,將所述文件鎖從本地文件鎖記錄中刪除。所述文件鎖狀態(tài)維護模塊122還用于:在每個刷新處理周期對本地文件鎖記錄中的文件鎖進行一次刷新處理。
[0070]在一個實施例中,所述文件鎖的狀態(tài)維護系統(tǒng)I包括文件鎖服務器11和文件鎖客戶端12兩部分,其中文件鎖客戶端12可以有一個或多個,通過互聯網或局域網與文件鎖11進行網絡通信;所述文件鎖服務器11包括文件鎖操作管理模塊111和文件鎖狀態(tài)管理模塊112兩部分;述文件鎖操作管理模塊111用于統(tǒng)一接收和處理來自文件鎖客戶端12的文件鎖操作請求,包括加鎖、解鎖、獲取鎖定者信息等,同時維護系統(tǒng)內所有的文件鎖記錄集合(即系統(tǒng)文件鎖記錄);所述文件鎖狀態(tài)管理模塊112用于統(tǒng)一管理系統(tǒng)內所有文件鎖的狀態(tài),包括維護系統(tǒng)內所有文件鎖的狀態(tài)信息,檢查所有文件鎖的刷新狀態(tài),對處于僵尸狀態(tài)的文件鎖進行強制解鎖等;所述的文件鎖狀態(tài)信息包括最近刷新時間和刷新來源等;所述的文件鎖客戶端12包括文件鎖操作模塊121和文件鎖狀態(tài)維護模塊122兩部分;所述文件鎖操作模塊121用于向服務器發(fā)送加鎖、解鎖和獲取鎖定者信息等請求,同時維護鎖定者在客戶端本地擁有的所有文件鎖記錄集合(即本地文件鎖記錄);所述文件鎖狀態(tài)維護模塊122用于對客戶端本地擁有的所有文件鎖進行定時刷新處理,并根據刷新處理結果調用文件鎖操作模塊來維護本地文件鎖記錄集合。
[0071]所述文件鎖的狀態(tài)維護系統(tǒng)的工作流程包括:文件加鎖流程,文件鎖狀態(tài)定時刷新流程以及文件鎖定時檢查流程。其中:
[0072]所述文件加鎖的流程如圖4所示。在步驟201中,客戶端文件鎖操作模塊121通過網絡向文件鎖服務器11發(fā)起加鎖請求。在步驟202中,服務器文件鎖操作管理模塊111接收到客戶端的加鎖請求并進行實際的加鎖處理。在步驟203中,服務器根據文件的狀態(tài)信息來判定加鎖是否成功并向客戶端返回相應結果。這里的判定條件包括當前用戶對文件是否有寫入權限,以及文件是否已被其他用戶鎖定等。如果當前用戶對文件沒有寫入權限,或者文件已被其他用戶鎖定,則判斷加鎖失敗,客戶端直接返回,否則判定加鎖成功,繼續(xù)執(zhí)行步驟204。在步驟204中,服務器文件鎖操作管理模塊111將判定成功的文件鎖添加進系統(tǒng)所有的文件鎖記錄集合中。在步驟205中,客戶端文件鎖操作模塊121將返回的判定成功的文件鎖添加進本地所有的文件鎖記錄集合中。
[0073]所述文件鎖狀態(tài)定時刷新流程如圖5所示。在步驟301中,客戶端文件鎖狀態(tài)維護模塊122嘗試從本地所有文件鎖記錄集合中獲取一條文件鎖記錄。在步驟302中,客戶端文件鎖操作模塊121根據本地文件鎖記錄的遍歷情況來判定記錄是否獲取成功(該工作也可由客戶端文件鎖狀態(tài)維護模塊122來完成,或者由客戶端文件鎖狀態(tài)維護模塊122調用客戶端文件鎖操作模塊121來完成)。這里的遍歷情況是指本地文件鎖記錄集合中是否有尚未遍歷過的下一條文件鎖記錄,如果有則獲取該條記錄,繼續(xù)執(zhí)行步驟303,否則獲取失敗,繼續(xù)執(zhí)行步驟307。在步驟303中,客戶端文件鎖狀態(tài)維護模塊122對獲取到的文件鎖向服務器發(fā)起刷新鎖的請求;在步驟304中,服務器響應客戶端的刷新鎖請求并進行刷新處理;在步驟305中,服務器根據文件鎖的狀態(tài)來判定對文件鎖的刷新是否成功。這里的判定依據包括文件鎖是否存在,文件鎖的最近刷新時間與當前系統(tǒng)時間的間隔是否在預期值內,這里所述的刷新間隔預設值一般比較短,比如30秒鐘,這樣對僵尸鎖的識別和解除就會保持在30秒鐘左右,如果文件鎖存在且上次刷新時間間隔在預設值內,則此次刷新處理成功,繼續(xù)執(zhí)行步驟301,否則刷新處理失敗,繼續(xù)執(zhí)行步驟306。在步驟306中,客戶端文件鎖操作模塊121將刷新失敗的文件鎖從本地所有文件鎖記錄集合中移除(該工作也可由客戶端文件鎖狀態(tài)維護模塊122來完成,或者由客戶端文件鎖狀態(tài)維護模塊122調用客戶端文件鎖操作模塊121來完成)。在步驟307中,客戶端文件鎖狀態(tài)維護模塊122休息等待一段時間,這個時間一般比較短,比如3秒鐘,這樣文件鎖客戶端就會每隔3秒鐘左右對本地所有文件鎖記錄進行定時狀態(tài)刷新處理。在步驟308中,客戶端文件鎖狀態(tài)維護模塊122檢查文件鎖客戶端是否需要退出,如果是則直接結束,否則繼續(xù)執(zhí)行步驟301。
[0074]所述文件鎖狀態(tài)定時檢查流程如圖6所示。在步驟401中,服務器文件鎖狀態(tài)管理模塊112從系統(tǒng)內所有文件鎖記錄集合中獲取一條文件鎖記錄。在步驟402中,服務器文件鎖操作管理模塊111根據系統(tǒng)所有文件鎖記錄的遍歷情況來判定記錄是否獲取成功(該工作也可由服務器文件鎖狀態(tài)管理模塊112來完成,或者由服務器文件鎖狀態(tài)管理模塊112調用服務器文件鎖操作管理模塊111來完成)。這里的遍歷情況是指系統(tǒng)文件鎖記錄集合中是否有尚未遍歷過的下一條文件鎖記錄,如果有則獲取該條記錄,繼續(xù)執(zhí)行步驟403,否則獲取失敗,繼續(xù)執(zhí)行步驟406。在步驟403中,服務器文件鎖狀態(tài)管理模塊112對獲取到的文件鎖進行狀態(tài)檢查處理;在步驟404中,服務器根據文件鎖的狀態(tài)信息來判定文件鎖是否處于僵尸狀態(tài)。這里的判定依據為文件鎖的最近刷新時間與當前系統(tǒng)時間的間隔是否在預期值內,這里所述的刷新間隔預設值一般比較短,比如30秒鐘,這樣對僵尸鎖的識別和解除就會保持在30秒鐘左右,如果文件鎖的上次刷新時間間隔在預設值內,則此次檢查成功,繼續(xù)執(zhí)行步驟401,否則說明該文件鎖處于僵尸狀態(tài),繼續(xù)執(zhí)行步驟405。在步驟405中,服務器文件鎖操作管理模塊111對上述處于僵尸狀態(tài)的文件鎖進行強制解鎖,并將其從系統(tǒng)所有文件鎖記錄集合中移除(該工作也可由服務器文件鎖狀態(tài)管理模塊112來完成,或者由服務器文件鎖狀態(tài)管理模塊112調用服務器文件鎖操作管理模塊111來完成)。在步驟406中,服務器文件鎖狀態(tài)管理模塊112休息等待一段時間,這個時間一般比較短,比如3秒鐘,這樣文件鎖服務器就會每隔3秒鐘左右對系統(tǒng)所有文件鎖記錄進行定時狀態(tài)檢查處理。在步驟407中,服務器文件鎖狀態(tài)管理模塊112檢查文件鎖服務器是否需要退出,如果是則直接結束,否則繼續(xù)執(zhí)行步驟401。
[0075]綜上所述,本發(fā)明的一種文件鎖的狀態(tài)維護方法及系統(tǒng)通過采用文件鎖狀態(tài)定時刷新機制和文件鎖狀態(tài)定時檢查機制,實現了對文件鎖狀態(tài)的準實時維護,并快速和準確地解除處于僵尸狀態(tài)的文件鎖,提升解鎖的及時性和準確性,同時省去人工溝通成本,減輕管理員的管理負荷。所以,本發(fā)明有效克服了現有技術中的種種缺點而具高度產業(yè)利用價值。
[0076]上述實施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術的人士皆可在不違背本發(fā)明的精神及范疇下,對上述實施例進行修飾或改變。因此,舉凡所屬技術領域中具有通常知識者在未脫離本發(fā)明所揭示的精神與技術思想下所完成的一切等效修飾或改變,仍應由本發(fā)明的權利要求所涵蓋。
【主權項】
1.一種文件鎖的狀態(tài)維護方法,其特征在于,所述文件鎖的狀態(tài)維護方法包括: 接收對文件的加鎖請求,對所述文件進行文件鎖鎖定處理,發(fā)送所述文件鎖的鎖定處理結果;在鎖定處理成功后將所述文件鎖加入系統(tǒng)文件鎖記錄中,所述文件鎖記錄包括修改時間屬性,所述文件鎖記錄的修改時間設定為所述文件鎖加入系統(tǒng)文件鎖記錄的時間; 對系統(tǒng)文件鎖記錄中的文件鎖記錄進行狀態(tài)檢查處理;所述狀態(tài)檢查處理包括:當所述文件鎖記錄中的修改時間與當前系統(tǒng)時間的間隔大于或者等于預設時間值時,對所述文件鎖記錄對應的文件鎖進行強制解鎖處理,并將所述文件鎖記錄從系統(tǒng)文件鎖記錄中刪除。2.根據權利要求1所述的文件鎖的狀態(tài)維護方法,其特征在于:所述文件鎖的狀態(tài)維護方法還包括:在每個狀態(tài)檢查周期對系統(tǒng)文件鎖記錄中的文件鎖記錄進行一次狀態(tài)檢查處理。3.根據權利要求1所述的文件鎖的狀態(tài)維護方法,其特征在于:所述文件鎖的狀態(tài)維護方法還包括:接收對文件鎖的刷新請求,在系統(tǒng)文件鎖記錄中查找所述文件鎖;當找到匹配的文件鎖記錄時,修改所述文件鎖記錄的修改時間為接收到所述文件鎖的刷新請求的時間,并發(fā)送所述文件鎖刷新成功的刷新結果;當未找到匹配的文件鎖記錄時,發(fā)送所述文件鎖刷新失敗的刷新結果。4.一種文件鎖的狀態(tài)維護方法,其特征在于:所述文件鎖的狀態(tài)維護方法包括: 向服務器發(fā)送文件加鎖請求并接收反饋的鎖定處理結果;當所述文件鎖鎖定成功時,將所述文件鎖加入本地文件鎖記錄中; 對本地文件鎖記錄中的文件鎖進行刷新處理,所述刷新處理包括:向服務器發(fā)送所述文件鎖的刷新請求并接收反饋的刷新結果;當所述文件鎖刷新失敗時,將所述文件鎖從本地文件鎖記錄中刪除。5.根據權利要求4所述的文件鎖的狀態(tài)維護方法,其特征在于:所述文件鎖的狀態(tài)維護方法還包括:在每個刷新處理周期對本地文件鎖記錄中的文件鎖進行一次刷新處理。6.—種文件鎖的狀態(tài)維護系統(tǒng),其特征在于:所述文件鎖的狀態(tài)維護系統(tǒng)包括服務器,所述服務器包括: 文件鎖操作管理模塊,用于接收對文件的加鎖請求,對所述文件進行文件鎖鎖定處理,發(fā)送所述文件鎖的鎖定處理結果;在鎖定處理成功后將所述文件鎖加入系統(tǒng)文件鎖記錄中,所述文件鎖記錄包括修改時間屬性,所述文件鎖記錄的修改時間設定為所述文件鎖加入系統(tǒng)文件鎖記錄的時間; 文件鎖狀態(tài)管理模塊,用于對系統(tǒng)文件鎖記錄中的文件鎖記錄進行狀態(tài)檢查處理;所述狀態(tài)檢查處理包括:當所述文件鎖記錄中的修改時間與當前系統(tǒng)時間的間隔大于或者等于預設時間值時,對所述文件鎖記錄對應的文件鎖進行強制解鎖處理,并將所述文件鎖記錄從系統(tǒng)文件鎖記錄中刪除。7.根據權利要求6所述的文件鎖的狀態(tài)維護系統(tǒng),其特征在于:所述文件鎖狀態(tài)管理模塊還用于:在每個狀態(tài)檢查周期對系統(tǒng)文件鎖記錄中的文件鎖記錄進行一次狀態(tài)檢查處理。8.根據權利要求6所述的文件鎖的狀態(tài)維護系統(tǒng),其特征在于:所述文件鎖狀態(tài)管理模塊還用于:接收對文件鎖的刷新請求,在系統(tǒng)文件鎖記錄中查找所述文件鎖;當找到匹配的文件鎖記錄時,修改所述文件鎖記錄的修改時間為接收到所述文件鎖的刷新請求的時間,并發(fā)送所述文件鎖刷新成功的刷新結果;當未找到匹配的文件鎖記錄時,發(fā)送所述文件鎖刷新失敗的刷新結果。9.一種文件鎖的狀態(tài)維護系統(tǒng),其特征在于:所述文件鎖的狀態(tài)維護系統(tǒng)包括客戶端,所述客戶端包括: 文件鎖操作模塊,用于向服務器發(fā)送文件加鎖請求并接收反饋的鎖定處理結果;當所述文件鎖鎖定成功時,將所述文件鎖加入本地文件鎖記錄中; 文件鎖狀態(tài)維護模塊,用于對本地文件鎖記錄中的文件鎖進行刷新處理,所述刷新處理包括:向服務器發(fā)送所述文件鎖的刷新請求并接收反饋的刷新結果;當所述文件鎖刷新失敗時,將所述文件鎖從本地文件鎖記錄中刪除。10.根據權利要求9所述的文件鎖的狀態(tài)維護系統(tǒng),其特征在于:所述文件鎖狀態(tài)維護模塊還用于:在每個刷新處理周期對本地文件鎖記錄中的文件鎖進行一次刷新處理。
【文檔編號】H04L29/08GK105979018SQ201610613061
【公開日】2016年9月28日
【申請日】2016年7月29日
【發(fā)明人】易志輝
【申請人】上海愛數信息技術股份有限公司