欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種資源處理的方法、裝置及系統(tǒng)的制作方法

文檔序號:10724726閱讀:539來源:國知局
一種資源處理的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本申請實施例提供一種資源處理的方法、裝置及系統(tǒng),該方法中業(yè)務服務器在確定出進程所需的資源后,可根據(jù)該資源,向各鎖服務器發(fā)送獲取該資源對應的各鎖的請求,相應的,業(yè)務服務器可接收各鎖服務器根據(jù)該請求返回的各操作結果,其中,當返回的部分操作結果為操作失敗,且另一部分操作結果為獲取成功時,則可通過該進程獲取并處理所述資源。從上述方法中可以看出,由于業(yè)務服務器可從至少兩個鎖服務器中獲取該進程所需的鎖,因此,即使一個鎖服務器出現(xiàn)了運行故障,其他鎖服務器也能夠向該進程分配鎖,進而有效的保證了該進程的正常運行,提高了業(yè)務服務器的業(yè)務處理效率。
【專利說明】
一種資源處理的方法、裝置及系統(tǒng)
技術領域
[0001] 本申請涉及計算機技術領域,尤其涉及一種資源處理的方法、裝置及系統(tǒng)。
【背景技術】
[0002] 隨著網(wǎng)絡技術的不斷發(fā)展,各種應用軟件相繼出現(xiàn),人們可通過使用這些應用軟 件來完成以往需要線下辦理的各項業(yè)務,因此,這些應用軟件的出現(xiàn)極大的提高了人們解 決日常問題的能力,為人們的日常生活帶來了方便。
[0003] 在實際應用中,用戶在使用應用軟件來進行業(yè)務處理時,通??稍谧约核钟械?諸如電腦、智能手機、平臺電腦等智能終端中安裝的該應用軟件上進行操作,進而生成用于 業(yè)務處理的業(yè)務請求,并通過終端將該業(yè)務請求發(fā)送至處理該業(yè)務請求的業(yè)務服務器中, 而業(yè)務服務器在接收到該業(yè)務請求后,可根據(jù)該業(yè)務請求,生成一個用于處理該業(yè)務請求 的進程,進而在后續(xù)過程中,通過運行該進程的方式來完成該業(yè)務請求的處理工作,并將得 到的處理結果返回給用戶。在此過程中,該進程可能需要對服務器中的一些數(shù)據(jù)進行操作, 但是,服務器中的數(shù)據(jù)通常都是共用的,換句話來說,不同的進程可能都會對同一數(shù)據(jù)進行 操作,若該進程在操作服務器中某一數(shù)據(jù)的過程中,其他進程也同時對該數(shù)據(jù)進行了操作, 則該進程所操作的數(shù)據(jù)則可能會因為其他進程的操作而發(fā)生更改,從而給該進程的運行帶 來了影響。
[0004]為此,當前通常都是采用一種鎖機制來保證進程對數(shù)據(jù)進行操作的過程中數(shù)據(jù)的 唯一性。具體的,進程在對服務器中的某一數(shù)據(jù)進行操作之前,可從鎖服務器(即向各進程 分配鎖的服務器)中獲取鎖,進而通過該鎖將該數(shù)據(jù)進行鎖定,這樣一來,由于該數(shù)據(jù)已經(jīng) 被該進程獲取的鎖進行了鎖定,因此,該數(shù)據(jù)在被鎖定的期間,只有該進程才能對它進行操 作,而其他進程只有等到該進程運行結束并將該鎖釋放后,才能陸續(xù)對該數(shù)據(jù)進行操作。因 此,鎖機制有效的保證了進程在進行數(shù)據(jù)操作時,數(shù)據(jù)的唯一性。
[0005] 然而,在實際應用中,進程獲取到的鎖通常都是由一臺鎖服務器提供的,倘若進程 在獲取鎖的過程中,該鎖服務器出現(xiàn)了運行異常等狀況,則該進程通常只能進行等待,直到 鎖服務器恢復正常運行并向該進程提供鎖后,才能進行后續(xù)的工作,因此,當鎖服務器出現(xiàn) 問題時,將極大的降低業(yè)務服務器中進程的運行效率,繼而降低了業(yè)務服務器處理業(yè)務的 效率。

【發(fā)明內容】

[0006] 本申請實施例提供一種資源處理的方法、裝置及系統(tǒng),用以解決現(xiàn)有技術中因鎖 服務器出現(xiàn)故障而導致業(yè)務服務器的業(yè)務處理效率降低的問題。
[0007] 本申請實施例提供的一種資源處理的方法,包括:
[0008] 確定進程所需的資源;
[0009] 根據(jù)所述資源,向各鎖服務器發(fā)送獲取所述資源對應的各鎖的請求,其中,所述各 鎖服務器至少包含兩個鎖服務器;
[0010] 接收所述各鎖服務器根據(jù)所述請求返回的各操作結果;
[0011] 當部分操作結果為操作失敗,且,另一部分操作結果為獲取鎖成功時,通過所述進 程獲取并處理所述資源,其中,返回操作結果為操作失敗的鎖服務器為出現(xiàn)故障的鎖服務 器。
[0012] 本申請實施例提供的一種資源處理的裝置,包括:
[0013] 確定模塊,用于確定進程所需的資源;
[0014] 發(fā)送模塊,用于根據(jù)所述資源,向各鎖服務器發(fā)送獲取所述資源對應的各鎖的請 求,其中,所述各鎖服務器至少包含兩個鎖服務器;
[0015] 接收模塊,用于接收所述各鎖服務器根據(jù)所述請求返回的各操作結果;
[0016] 處理模塊,用于當部分操作結果為操作失敗,且,另一部分操作結果為獲取鎖成功 時,通過所述進程獲取并處理所述資源,其中,返回操作結果為操作失敗的鎖服務器為出現(xiàn) 故障的鎖服務器。
[0017] 本申請實施例提供的一種資源處理的系統(tǒng),包括:
[0018] 業(yè)務服務器和至少兩個鎖服務器;
[0019] 業(yè)務服務器,用于確定進程所需的資源,根據(jù)所述資源,向每個鎖服務器發(fā)送獲取 所述資源對應的鎖的請求,接收各鎖服務器根據(jù)所述請求返回的各操作結果,當部分操作 結果為操作失敗,且,另一部分操作結果為獲取成功時,通過所述進程獲取并處理所述資 源;
[0020] 鎖服務器,用于接收所述業(yè)務服務器發(fā)送的獲取所述資源對應的鎖的請求,根據(jù) 所述請求向所述業(yè)務服務器返回操作結果,其中,當所述資源的鎖未分配給其他進程時,則 將所述資源對應的鎖返回給所述業(yè)務服務器,當所述鎖服務器出現(xiàn)故障時,則向所述業(yè)務 服務器返回操作失敗。
[0021] 本申請實施例提供一種資源處理的方法、裝置及系統(tǒng),該方法中業(yè)務服務器在確 定出進程所需的資源后,可根據(jù)該資源,向各鎖服務器發(fā)送獲取該資源對應的各鎖的請求, 相應的,業(yè)務服務器可接收各鎖服務器根據(jù)該請求返回的各操作結果,其中,當返回的部分 操作結果為操作失敗,且另一部分操作結果為獲取成功時,則可通過該進程獲取并處理所 述資源。從上述方法中可以看出,由于業(yè)務服務器可從至少兩個鎖服務器中獲取該進程所 需的鎖,因此,即使一個鎖服務器出現(xiàn)了運行故障,其他鎖服務器也能夠向該進程分配鎖, 進而有效的保證了該進程的正常運行,提高了業(yè)務服務器的業(yè)務處理效率。
【附圖說明】
[0022] 此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申 請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:
[0023] 圖1為本申請實施例提供的資源處理的詳細過程;
[0024] 圖2為本申請實施例提供的一種資源處理的裝置結構示意圖;
[0025]圖3為本申請實施例提供的一種資源處理的系統(tǒng)的示意圖。
【具體實施方式】
[0026]為使本申請的目的、技術方案和優(yōu)點更加清楚,下面將結合本申請具體實施例及 相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一 部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有做 出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
[0027]圖1為本申請實施例提供的資源處理的詳細過程,具體包括以下步驟:
[0028] S101:確定進程所需的資源。
[0029] 在實際應用中,進程在運行的過程中,通常都需要對該進程所需的資源進行一定 的處理,繼而才能完成該進程的運行,而通常情況下,進程所處理的資源通常都是共用的, 即,不同的進程在運行時可能都需要對同一資源進行處理,然而,一個進程在對某一資源處 理的過程中,其他進程也對該資源進行了處理,則由于該資源會被不同的進程同時進行處 理,因此,這兩個進程同時對該資源的處理也將會對彼此造成影響,繼而使得這兩個進程可 能都會出現(xiàn)運行不良的狀況。因此,為避免這一情況的發(fā)生,在現(xiàn)有技術中,通常都會采用 一種鎖機制來將進程所需的資源進行鎖定,該資源在鎖定的過程中,其他進程將無法對該 資源進行操作,這樣一來,該進程在對該資源的操作過程中,該資源將不會受到其他進程運 行的影響,從而有效的保證了該進程的正常運行。
[0030] 而業(yè)務服務器中的進程在對該進程所需的資源進行處理之前,需要向獲取能夠鎖 定該資源的鎖,因此,在本申請實施例中,該進程在對所需的資源進行處理之前,可先向能 夠向該進程分配鎖的鎖服務器獲取該資源對應的鎖,進而在獲取到該資源對應的鎖后,再 獲取該資源并處理。而在此之前,業(yè)務服務器可先接收用戶通過所持的終端發(fā)送的業(yè)務請 求,而后,通過解析該業(yè)務請求來生成處理該業(yè)務請求的一個進程,業(yè)務服務器在生成該進 程后,可進一步的確定出該進程所需的資源,進而在后續(xù)過程中,通過確定出的該進程所需 的資源,向鎖服務器發(fā)送獲取該資源所對應的鎖的請求,其中,這里提到的終端可以是電 腦、智能手機、平板電腦等終端設備。
[0031] S102:根據(jù)所述資源,向各鎖服務器發(fā)送獲取所述資源對應的各鎖的請求,其中, 所述各鎖服務器至少包含兩個鎖服務器。
[0032] 在實際應用中,鎖服務器可對不同的資源分別設置各個鎖并存儲,后續(xù)在接收到 業(yè)務服務器發(fā)送的獲取鎖的請求后,可根據(jù)業(yè)務服務器發(fā)送的請求中包含的資源標識,確 定出該進程所要獲取的資源,進而將該資源對應的鎖返回給進程,而由于本申請實施例意 在解決一個鎖服務器在出現(xiàn)故障時將導致業(yè)務服務器業(yè)務處理效率降低的問題,因此,在 本申請實施例中,可預先設置不同的鎖服務器向業(yè)務服務器進行鎖分配,其中,各鎖服務器 可針對同一資源分別設置不同的鎖并存儲,而后,各鎖服務器可將各自存儲的對應該資源 的鎖的標識分別發(fā)送給業(yè)務服務器,業(yè)務服務器在接收到各鎖的標識后,可將各標識進行 存儲,例如,建立一個該資源與各鎖標識對應的表并存儲,后續(xù)業(yè)務服務器在從各鎖服務器 獲取該資源對應的各鎖時,則可根據(jù)先前存儲的各鎖的標識,依次向各鎖服務器發(fā)送獲取 該資源對應的各鎖的請求,其中,為了要保證在一個鎖服務器出現(xiàn)故障的情況下,該進程依 然能從其他鎖服務器獲取到能夠鎖定該資源的鎖,因此,在本申請實施例中,鎖服務器應至 少為兩個,這樣,當一個鎖服務器出現(xiàn)故障時,另一個鎖服務器依然能夠保證向該業(yè)務服務 器中的該進程分配該進程所需資源對應的鎖,從而在一定程度上保證了該進程的順利運 行,當然,鎖服務器也可設置的較多一些,進而可盡可能的降低因鎖服務器出現(xiàn)故障而導致 的業(yè)務服務器中進程無法正常運行的情況發(fā)生。
[0033] 需要說明的是,上述提到的各鎖服務器并不一定是一個專門用于向業(yè)務服務器中 各進程分配鎖的服務器,這些鎖服務器可以是已存在的服務器,如,其他的業(yè)務服務器,專 門存儲數(shù)據(jù)的服務器等,為了使這些服務器能夠向業(yè)務服務器的進程分配鎖,可事先對這 些服務器進行一定的改進,如,可在這些服務器中集成一些功能模塊,使這些服務器能夠變 成具有向該業(yè)務服務器中的進程分配鎖功能的鎖服務器,當然也可采用其他的方法來使一 些服務器具備向業(yè)務服務器分配鎖的功能,在此就不進行一一舉例說明了。
[0034] S103:接收所述各鎖服務器根據(jù)所述請求返回的各操作結果。
[0035] 各鎖服務器在接收到業(yè)務服務器發(fā)送的獲取該資源對應的各鎖的請求后,將根據(jù) 該資源對應的各鎖的使用情況,向業(yè)務服務器返回各鎖對應的各操作結果,相應的,后續(xù)業(yè) 務服務器的該進程在接收到各鎖服務器返回的各操作結果后,可根據(jù)返回的各操作結果, 確定是否對該進程所需的資源進行處理。
[0036] 具體的,在本申請實施例中,該進程在對所需的資源進行操作之前,需要從各鎖服 務器中獲取到該資源對應的各鎖,并當獲取到各鎖后,再對該資源進進行處理,然而,各鎖 服務器的運行狀況有時并不是完全相同的,即,在同一時刻,有的鎖服務器可能出現(xiàn)了運行 故障,而有的鎖服務器則依然正常運行,而為了保證業(yè)務服務器中進程的正常運行,當一部 分鎖服務器出現(xiàn)故障時,該進程依然能夠從其他的鎖服務器獲取該進程所需資源的各鎖, 進而在獲取到各鎖后,對該資源進行處理,但是,倘若一個進程在從一部分鎖服務器獲取到 該進程所需資源對應的各鎖后,另一部分的鎖服務器又恢復了正常的運行狀態(tài),則后續(xù)其 他進程需要從鎖服務器中獲取該資源對應的鎖時,這部分恢復正常的鎖服務器將向該其他 進程分配該資源對應的各鎖,這樣一來,由于兩個進程都從各鎖服務器獲取到了該資源所 對應的鎖,因此,這兩個進程將會同時對該資源進行處理,進而使得這兩個進程可能都將無 法正常運行。
[0037] 為了避免上述情況的發(fā)生,業(yè)務服務器中的進程在向各鎖服務器獲取該進程所需 資源對應的各鎖時,需要依次向各鎖服務器發(fā)送獲取該資源對應的各鎖的請求,這樣一來, 各鎖服務器在接收到業(yè)務服務器發(fā)送的各請求后,也將分別向業(yè)務服務器返回各鎖的操作 結果,進而,后續(xù)該業(yè)務服務器的進程可根據(jù)各鎖服務器返回的各操作結果,確定出該資源 對應的各鎖的使用情況,進而確定出是否對該資源進行處理。
[0038] S104:當部分操作結果為操作失敗,且,另一部分操作結果為獲取鎖成功時,通過 所述進程獲取并處理所述資源,其中,返回操作結果為操作失敗的鎖服務器為出現(xiàn)故障的 鎖服務器。
[0039]業(yè)務服務器在獲取到各鎖服務器返回的各操作結果后,可根據(jù)各操作結果,進一 步的確定出是否通過該進程獲取并處理該資源,其中,由于各鎖服務器的運行狀況并不是 完全相同的,因此,各鎖服務器向業(yè)務服務器返回的對應各鎖的各操作結果可能也將是不 同的,當各鎖服務器均處于正常運行時,則事先在沒有其他進程獲取該資源對應的各鎖的 情況下,各鎖服務器將根據(jù)業(yè)務服務器發(fā)送的獲取該資源對應的各鎖的請求,分別將該資 源對應的各鎖返回給該業(yè)務服務器,即,該業(yè)務服務器將從各鎖服務器中對應該資源的各 鎖全部獲取到,而當這些鎖服務器中,一部分出現(xiàn)了故障,而另一部分依舊正常運行,則業(yè) 務服務器將從運行正常的鎖服務器獲取到該資源對應的各鎖,而由于本申請實施例意在保 證即使一個鎖服務器出現(xiàn)了故障,業(yè)務服務器依然能夠從其他鎖服務器中獲取到該資源所 對應的鎖,進而保證該進程的正常運行,因此,業(yè)務服務器從一部分運行正常的鎖服務器獲 取到該資源對應的各鎖,而并未從出現(xiàn)運行故障的另一部分鎖服務器中獲取該資源對應的 各鎖后,業(yè)務服務器可認定成功的獲取了該資源對應的鎖,繼而通過業(yè)務服務器中的該進 程處理該資源,從而有效的保證了該進程的正常運行,提高了業(yè)務服務器在進行業(yè)務處理 時的效率。
[0040] 當然,各鎖服務器向業(yè)務服務器返回的各操作結果中除了包含有獲取鎖成功或是 操作失敗這兩種結果外,還可能包含有其他進程已經(jīng)獲取到鎖的操作結果,出現(xiàn)這一操作 結果是因為,在實際應用中,當各鎖服務器中的一部分鎖服務器出現(xiàn)了故障,而另一部分的 鎖服務器依然正常運行時,業(yè)務服務器可從運行正常的這部分鎖服務器中獲取到各鎖,繼 而確定通過該進程對應該資源進行處理,然而,在經(jīng)過一段時間后,出現(xiàn)故障的這部分鎖服 務器恢復了正常,則后續(xù)的其他進程在向各鎖服務器獲取該資源對應的各鎖時,則將會從 先前出現(xiàn)故障的這部分鎖服務器中成功獲取到該資源對應的鎖,而對于先前已經(jīng)將該資源 對應的各鎖分配給該進程的鎖服務器(即先前運行正常的鎖服務器)來說,這些鎖服務器將 向該其他進程返回鎖已被分配的操作結果,即,沖突操作結果,這時,業(yè)務服務器可得知雖 然已從一部分鎖服務器獲取到了該資源對應的各鎖,但是,有一部分鎖服務器事先已將該 資源對應的鎖分配給了其他進程,因此,業(yè)務服務器將進一步的確定出當前正有一個其他 進程對該資源進行處理,相應的,為保證正在處理該資源的其他進程能夠正常運行,該業(yè)務 服務器將不通過該進程處理該資源,同時,將從一部分鎖服務器中獲取到的該資源對應的 各鎖進行釋放,并在等待設定時間長度后,重新向各鎖服務器發(fā)送獲取該資源對應的各鎖 的請求。
[0041] 例如,假設業(yè)務服務器在接收到用戶A通過終端發(fā)送的業(yè)務請求后,可通過解析該 業(yè)務請求而生成出一個進程A,相應的,該業(yè)務服務器可進一步的確定出該進程A所需的資 源a,并根據(jù)確定出的資源a,向4個鎖服務器發(fā)送獲取該資源a對應的各鎖的請求,而在獲取 鎖的過程中,2個鎖服務器由于出現(xiàn)了故障,因此,將無法向該業(yè)務服務器返回該資源a對應 的各鎖,相應的,這兩個出現(xiàn)故障的鎖服務器將向業(yè)務服務器返回兩個操作失敗的操作結 果,而對于另兩個鎖服務器來說,由于這兩個鎖服務器處于正常運行的狀態(tài),因此,這兩個 運行正常的鎖服務器可向業(yè)務服務器返回該資源a所對應的鎖,即,業(yè)務服務器獲取到的這 兩個鎖服務器返回的操作結果為獲取鎖成功,相應的,由于該業(yè)務服務器從兩個鎖服務器 獲取到了該資源a對應的鎖,并從另兩個鎖服務器獲取到了操作失敗的操作結果,則該業(yè)務 服務器則可認定該資源a當前并沒有被其他進程所占用,進而通過生成的進程A來對該資源 a進行處理。而后,業(yè)務服務器后續(xù)在接收到了用戶B發(fā)送的業(yè)務請求后發(fā)現(xiàn),根據(jù)該業(yè)務請 求而生成的進程B也需要對資源a進行處理,則業(yè)務服務器可向這4個鎖服務器分別發(fā)送獲 取資源a對應的各鎖的請求,此時,先前出現(xiàn)運行故障的兩個鎖服務器已經(jīng)恢復了正常運 行,則這兩個鎖服務器在接收到業(yè)務服務器發(fā)送的請求后,可向該業(yè)務服務器返回該資源a 所對應的鎖,即,業(yè)務服務器接收到的這兩個鎖服務器返回的操作結果為獲取鎖成功,而對 于另兩個鎖服務器來說,由于這兩個鎖服務器先前已將該資源a對應的鎖分配給了進程A, 因此,當這兩個鎖服務器接收到業(yè)務服務器針對進程B而發(fā)送的請求后,可向業(yè)務服務器返 回該資源a的鎖已分配給了其他的進程,即,業(yè)務服務器接收到的這兩個鎖服務器返回的操 作結果為沖突操作結果,相應的,該業(yè)務服務器可確定出該資源a當前正被其他進程所占 用,進而不通過該進程B獲取并處理該資源a,與此同時,該業(yè)務服務器可將針對進程B而獲 取到的該資源a所對應的鎖進行釋放,并等待設定時間長度后,重新向這4個鎖服務器發(fā)送 獲取該資源a對應的各鎖的請求,其中,當?shù)却O定時間長度后,進程A結束了運行并將其所 持有的鎖進行了釋放,則該業(yè)務服務器可針對進程B從這4個鎖服務器全部獲取到該資源a 所對應的各鎖,進而在全部獲取到這4個鎖后,確定通過進程B獲取該資源a并處理。
[0042]由此可以看出,業(yè)務服務器從各鎖服務器獲取到的操作結果基本上可以分為三種 結果,即,當鎖服務器運行正常且沒有將該資源對應的鎖分配給其他進程時,業(yè)務服務器將 從鎖服務器獲取到的操作結果為獲取鎖成功,而當鎖服務器運行正常,但是已將該資源對 應的鎖分配給了其他進程時,業(yè)務服務器將從鎖服務器獲取到的操作結果為沖突操作結 果,當鎖服務器出現(xiàn)故障時,業(yè)務服務器將從鎖服務器獲取到的操作結果為操作失敗。相應 的,業(yè)務服務器接收到的各鎖服務器返回的操作結果中可能只包含有一種操作結果,或是 可能包含兩種操作結果,也或是三種操作結果都包含,而業(yè)務服務器在接收到各鎖服務器 返回的各操作結果后,可根據(jù)各操作結果,來確定是否通過所述進程處理所述資源,如表1 所示。
[0045] 表 1
[0046] 從表1中可以看出,當業(yè)務服務器接收到的各鎖服務器返回的各操作結果中包含 有沖突操作結果時,則即使業(yè)務服務器獲取到的各操作結果中還包含有操作失敗或是獲取 鎖成功,也將不通過所述進程處理所述資源,而當業(yè)務服務器接收到的各操作結果中一部 分為操作失敗,而另一部分為獲取鎖成功時,則業(yè)務服務器可通過所述進程處理所述資源, 因此,從上述方法中可以看出,即使一個鎖服務器出現(xiàn)了故障而無法向業(yè)務服務器返回該 資源對應的鎖,業(yè)務服務器也可從其他正常運行的鎖服務器中獲取到該資源對應的鎖,從 而有效的保證了該進程的順利運行,進而提高了業(yè)務服務器業(yè)務處理的效率。
[0047] 需要說明的是,上述說明的鎖服務器出現(xiàn)故障的情況并不是鎖服務器完全無法運 行的情況,而是指鎖服務器向業(yè)務服務器的進程提供鎖的功能出現(xiàn)了故障,這樣一來,當鎖 服務器接收到了業(yè)務服務器發(fā)送的獲取所述資源對應的鎖的請求后,鎖服務器可得知當前 自身的向業(yè)務服務器的進程分配鎖的功能出現(xiàn)了故障,繼而向業(yè)務服務器返回的操作結果 即為操作失敗。當然,當鎖服務器完全無法運行時,鎖服務器即使接收到了業(yè)務服務器發(fā)送 的獲取鎖的請求,鎖服務器可能也將無法響應該請求,因此,對于這種情況來說,當鎖服務 器完全出現(xiàn)故障時,業(yè)務服務器將無法接收到該鎖服務器返回的操作結果,但是,由于其他 運行正?;騼H是分配鎖功能出現(xiàn)故障的鎖服務器依然可以向業(yè)務服務器返回各操作結果, 因此,業(yè)務服務器可根據(jù)接收到的各操作結果來確定是否通過所述進程處理所述資源。
[0048] 在本申請實施例中,當業(yè)務服務器根據(jù)各鎖服務器返回的各操作結果確定出該資 源當前正被其他進程所占用時,也可隨機等待一段時間,并在等待確定的隨機時間長度后, 重新向各鎖服務器發(fā)送獲取該資源對應的各鎖的請求,其中,隨機的時間范圍可設定在一 個合理的時間范圍內,以防止隨機得到的時間過長而延長該進程運行的問題出現(xiàn),而具體 的設定方式可以是例如預先設定一個合理的最大時間,然后再將該最大時間與一個〇到1的 隨機數(shù)進行相乘,得到隨機時間長度,當然,確定隨機時間長度也可由其他的方式來實現(xiàn), 在此就不進行詳細說明了。
[0049] 另外,在實際應用中,除了因鎖服務器出現(xiàn)故障而導致向業(yè)務服務器返回操作失 敗的情況發(fā)生外,鎖服務器和業(yè)務服務器之間出現(xiàn)通信故障也將導致無法獲取鎖的情況發(fā) 生,因此,對于這種情況來說,業(yè)務服務器在向鎖服務器發(fā)送獲取上述資源對應的各鎖的請 求時,若業(yè)務服務器和鎖服務器之間出現(xiàn)了通信故障,則業(yè)務服務器將無法將這一請求發(fā) 送至鎖服務器,或是即使鎖服務器與業(yè)務服務器在出現(xiàn)通信故障之前,鎖服務器接收到了 業(yè)務服務器發(fā)送的獲取鎖的請求,則當鎖服務器與業(yè)務服務器出現(xiàn)通信故障時,鎖服務器 也將無法將操作結果返回給業(yè)務服務器,因此,對于這種情況來說,業(yè)務服務器向各鎖服務 器發(fā)送的獲取鎖的請求的數(shù)量將大于各鎖服務器向業(yè)務服務器返回的操作結果的數(shù)量,但 是,即使一部分鎖服務器與業(yè)務服務器之間出現(xiàn)了通信故障,業(yè)務服務器依然可以根據(jù)接 收到的各操作結果來確定是否通過所述進程處理所述資源,具體的確定方式可以參照表1 的方式來進行,在此就不再進行詳細贅述了。
[0050] 以上為本申請實施例提供的資源處理的方法,基于同樣的思路,本申請實施例還 提供一種資源處理的裝置,如圖2所示。
[0051] 圖2為本申請實施例提供的一種資源處理的裝置結構示意圖,具體包括:
[0052]確定模塊201,用于確定進程所需的資源;
[0053]發(fā)送模塊202,用于根據(jù)所述資源,向各鎖服務器發(fā)送獲取所述資源對應的各鎖的 請求,其中,所述各鎖服務器至少包含兩個鎖服務器;
[0054]接收模塊203,用于接收所述各鎖服務器根據(jù)所述請求返回的各操作結果;
[0055]處理模塊204,用于當部分操作結果為操作失敗,且,另一部分操作結果為獲取鎖 成功時,通過所述進程獲取并處理所述資源,其中,返回操作結果為操作失敗的鎖服務器為 出現(xiàn)故障的鎖服務器。
[0056]所述處理模塊204還用于,當通過所述接收模塊203接收到的各操作結果均為獲取 成功時,通過所述進程獲取并處理所述資源;
[0057]所述處理模塊204還用于,當通過所述接收模塊203接收到的各操作結果中包含沖 突操作結果或均為操作失敗時,不通過所述進程獲取并處理所述資源,其中,返回操作結果 為沖突操作結果的鎖服務器為:已將所述資源對應的鎖分配給其他進程的鎖服務器。
[0058]所述處理模塊204還用于,當通過所述接收模塊203接收到的各操作結果中包含沖 突操作結果時,將通過所述進程獲取到的所述資源對應的鎖釋放;等待設定時間長度后,指 示所述發(fā)送模塊202重新向各鎖服務器發(fā)送獲取所述資源對應的各鎖的請求。
[0059] 所述處理模塊204還用于,隨機確定時間長度;等待隨機確定的所述時間長度后, 指示所述發(fā)送模塊202重新向各鎖服務器發(fā)送獲取所述資源對應的各鎖的請求。
[0060] 上述說明的業(yè)務服務器和各鎖服務器也可位于一個系統(tǒng)中,如圖3所示。
[0061] 圖3為本申請實施例提供的一種資源處理的系統(tǒng)的示意圖,具體包括:
[0062] 業(yè)務服務器301和至少兩個鎖服務器302;
[0063]所述業(yè)務服務器301,用于確定進程所需的資源,根據(jù)所述資源,向每個鎖服務器 302發(fā)送獲取所述資源對應的鎖的請求,接收各鎖服務器302根據(jù)所述請求返回的各操作結 果,當部分操作結果為操作失敗,且,另一部分操作結果為獲取成功時,通過所述進程獲取 并處理所述資源;
[0064]所述鎖服務器302,用于接收所述業(yè)務服務器301發(fā)送的獲取所述資源對應的鎖的 請求,根據(jù)所述請求向所述業(yè)務服務器301返回操作結果,其中,當所述資源的鎖未分配給 其他進程時,則將所述資源對應的鎖返回給所述業(yè)務服務器301,當所述鎖服務器302出現(xiàn) 故障時,則向所述業(yè)務服務器301返回操作失敗。
[0065]所述業(yè)務服務器301還用于,當接收到的各操作結果均為獲取鎖成功時,通過所述 進程獲取并處理所述資源;當接收到的各操作結果中包含沖突操作結果或均為操作失敗 時,不通過所述進程獲取并處理所述資源;
[0066]所述鎖服務器302還用于,當接收所述業(yè)務服務器301發(fā)送的獲取所述資源對應的 鎖的請求后,確定所述資源對應的鎖分配給其他進程時,則向所述業(yè)務服務器301返回沖突 操作結果。
[0067]本申請實施例提供一種資源處理的方法、裝置及系統(tǒng),該方法中業(yè)務服務器在確 定出進程所需的資源后,可根據(jù)該資源,向各鎖服務器發(fā)送獲取該資源對應的各鎖的請求, 相應的,業(yè)務服務器可接收各鎖服務器根據(jù)該請求返回的各操作結果,其中,當返回的部分 操作結果為操作失敗,且另一部分操作結果為獲取成功時,則可通過該進程獲取并處理所 述資源。從上述方法中可以看出,由于業(yè)務服務器可從至少兩個鎖服務器中獲取該進程所 需的鎖,因此,即使一個鎖服務器出現(xiàn)了運行故障,其他鎖服務器也能夠向該進程分配鎖, 進而有效的保證了該進程的正常運行,提高了業(yè)務服務器的業(yè)務處理效率。
[0068] 在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng) 絡接口和內存。
[0069] 內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或 非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的 示例。
[0070] 計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法 或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結構、程序的模塊或其他數(shù)據(jù)。 計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動 態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除 可編程只讀存儲器(EEPR0M)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、 數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備 或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算 機可讀介質不包括暫存電腦可讀媒體(transitory media),如調制的數(shù)據(jù)信號和載波。
[0071] 還需要說明的是,術語"包括"、"包含"或者其任何其他變體意在涵蓋非排他性的 包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包 括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要 素。在沒有更多限制的情況下,由語句"包括一個……"限定的要素,并不排除在包括所述要 素的過程、方法、商品或者設備中還存在另外的相同要素。
[0072] 本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。 因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的 形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存 儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形 式。
[0073] 以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術人員 來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同 替換、改進等,均應包含在本申請的權利要求范圍之內。
【主權項】
1. 一種資源處理的方法,其特征在于,包括: 確定進程所需的資源; 根據(jù)所述資源,向各鎖服務器發(fā)送獲取所述資源對應的各鎖的請求,其中,所述各鎖服 務器至少包含兩個鎖服務器; 接收所述各鎖服務器根據(jù)所述請求返回的各操作結果; 當部分操作結果為操作失敗,且,另一部分操作結果為獲取鎖成功時,通過所述進程獲 取并處理所述資源,其中,返回操作結果為操作失敗的鎖服務器為出現(xiàn)故障的鎖服務器。2. 如權利要求1所述的方法,其特征在于,所述方法還包括: 當接收到的各操作結果均為獲取鎖成功時,通過所述進程獲取并處理所述資源; 當接收到的各操作結果中包含沖突操作結果或者均為操作失敗時,不通過所述進程獲 取并處理所述資源,其中,返回操作結果為沖突操作結果的鎖服務器為:已將所述資源對應 的鎖分配給其他進程的鎖服務器。3. 如權利要求2所述的方法,其特征在于,當接收到的各操作結果中包含沖突操作結果 時,所述方法還包括: 將通過所述進程獲取到的所述資源對應的鎖釋放; 等待設定時間長度后,重新向各鎖服務器發(fā)送獲取所述資源對應的各鎖的請求。4. 如權利要求3所述的方法,其特征在于,等待設定時間長度后,重新向各鎖服務器發(fā) 送獲取所述資源對應的各鎖的請求,具體包括: 隨機確定時間長度; 等待隨機確定的所述時間長度后,重新向各鎖服務器發(fā)送獲取所述資源對應的各鎖的 請求。5. -種資源處理的裝置,其特征在于,包括: 確定模塊,用于確定進程所需的資源; 發(fā)送模塊,用于根據(jù)所述資源,向各鎖服務器發(fā)送獲取所述資源對應的各鎖的請求,其 中,所述各鎖服務器至少包含兩個鎖服務器; 接收模塊,用于接收所述各鎖服務器根據(jù)所述請求返回的各操作結果; 處理模塊,用于當部分操作結果為操作失敗,且,另一部分操作結果為獲取鎖成功時, 通過所述進程獲取并處理所述資源,其中,返回操作結果為操作失敗的鎖服務器為出現(xiàn)故 障的鎖服務器。6. 如權利要求5所述的裝置,其特征在于,所述處理模塊還用于,當通過所述接收模塊 接收到的各操作結果均為獲取成功時,通過所述進程獲取并處理所述資源; 所述處理模塊還用于,當通過所述接收模塊接收到的各操作結果中包含沖突操作結果 或均為操作失敗時,不通過所述進程獲取并處理所述資源,其中,返回操作結果為沖突操作 結果的鎖服務器為:已將所述資源對應的鎖分配給其他進程的鎖服務器。7. 如權利要求6所述的裝置,其特征在于,所述處理模塊還用于,當通過所述接收模塊 接收到的各操作結果中包含沖突操作結果時,將通過所述進程獲取到的所述資源對應的鎖 釋放;等待設定時間長度后,指示所述發(fā)送模塊重新向各鎖服務器發(fā)送獲取所述資源對應 的各鎖的請求。8. 如權利要求7所述的裝置,其特征在于,所述處理模塊還用于,隨機確定時間長度;等 待隨機確定的所述時間長度后,指示所述發(fā)送模塊重新向各鎖服務器發(fā)送獲取所述資源對 應的各鎖的請求。9. 一種資源處理的系統(tǒng),其特征在于,所述系統(tǒng)包括業(yè)務服務器和至少兩個鎖服務器: 所述業(yè)務服務器,用于確定進程所需的資源,根據(jù)所述資源,向每個鎖服務器發(fā)送獲取 所述資源對應的鎖的請求,接收各鎖服務器根據(jù)所述請求返回的各操作結果,當部分操作 結果為操作失敗,且,另一部分操作結果為獲取成功時,通過所述進程獲取并處理所述資 源; 所述鎖服務器,用于接收所述業(yè)務服務器發(fā)送的獲取所述資源對應的鎖的請求,根據(jù) 所述請求向所述業(yè)務服務器返回操作結果,其中,當所述資源的鎖未分配給其他進程時,則 將所述資源對應的鎖返回給所述業(yè)務服務器,當所述鎖服務器出現(xiàn)故障時,則向所述業(yè)務 服務器返回操作失敗。10. 如權利要求9所述的系統(tǒng),其特征在于,所述業(yè)務服務器還用于,當接收到的各操作 結果均為獲取鎖成功時,通過所述進程獲取并處理所述資源;當接收到的各操作結果中包 含沖突操作結果或均為操作失敗時,不通過所述進程獲取并處理所述資源; 所述鎖服務器還用于,當接收所述業(yè)務服務器發(fā)送的獲取所述資源對應的鎖的請求 后,確定所述資源對應的鎖分配給其他進程時,則向所述業(yè)務服務器返回沖突操作結果。
【文檔編號】G06F9/52GK106095594SQ201610381984
【公開日】2016年11月9日
【申請日】2016年6月1日 公開號201610381984.1, CN 106095594 A, CN 106095594A, CN 201610381984, CN-A-106095594, CN106095594 A, CN106095594A, CN201610381984, CN201610381984.1
【發(fā)明人】黃旭
【申請人】新浪網(wǎng)技術(中國)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
武汉市| 东平县| 鲜城| 渭南市| 兰州市| 甘孜县| 洞口县| 连云港市| 体育| 卓资县| 兴海县| 五原县| 亚东县| 永兴县| 娄底市| 县级市| 奉化市| 商南县| 新余市| 弥渡县| 武山县| 无为县| 华阴市| 子洲县| 那曲县| 应城市| 达州市| 荣昌县| 和林格尔县| 永吉县| 农安县| 莲花县| 兴安盟| 平远县| 台州市| 咸丰县| 嘉祥县| 崇礼县| 肇东市| 化德县| 湄潭县|