一種資源處理的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本申請(qǐng)實(shí)施例提供一種資源處理的方法、裝置及系統(tǒng),該方法中業(yè)務(wù)服務(wù)器在確定出進(jìn)程所需的資源后,可根據(jù)該資源,向各鎖服務(wù)器發(fā)送獲取該資源對(duì)應(yīng)的各鎖的請(qǐng)求,相應(yīng)的,業(yè)務(wù)服務(wù)器可接收各鎖服務(wù)器根據(jù)該請(qǐng)求返回的各操作結(jié)果,其中,當(dāng)返回的部分操作結(jié)果為操作失敗,且另一部分操作結(jié)果為獲取成功時(shí),則可通過該進(jìn)程獲取并處理所述資源。從上述方法中可以看出,由于業(yè)務(wù)服務(wù)器可從至少兩個(gè)鎖服務(wù)器中獲取該進(jìn)程所需的鎖,因此,即使一個(gè)鎖服務(wù)器出現(xiàn)了運(yùn)行故障,其他鎖服務(wù)器也能夠向該進(jìn)程分配鎖,進(jìn)而有效的保證了該進(jìn)程的正常運(yùn)行,提高了業(yè)務(wù)服務(wù)器的業(yè)務(wù)處理效率。
【專利說明】
一種資源處理的方法、裝置及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種資源處理的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,各種應(yīng)用軟件相繼出現(xiàn),人們可通過使用這些應(yīng)用軟 件來完成以往需要線下辦理的各項(xiàng)業(yè)務(wù),因此,這些應(yīng)用軟件的出現(xiàn)極大的提高了人們解 決日常問題的能力,為人們的日常生活帶來了方便。
[0003] 在實(shí)際應(yīng)用中,用戶在使用應(yīng)用軟件來進(jìn)行業(yè)務(wù)處理時(shí),通常可在自己所持有的 諸如電腦、智能手機(jī)、平臺(tái)電腦等智能終端中安裝的該應(yīng)用軟件上進(jìn)行操作,進(jìn)而生成用于 業(yè)務(wù)處理的業(yè)務(wù)請(qǐng)求,并通過終端將該業(yè)務(wù)請(qǐng)求發(fā)送至處理該業(yè)務(wù)請(qǐng)求的業(yè)務(wù)服務(wù)器中, 而業(yè)務(wù)服務(wù)器在接收到該業(yè)務(wù)請(qǐng)求后,可根據(jù)該業(yè)務(wù)請(qǐng)求,生成一個(gè)用于處理該業(yè)務(wù)請(qǐng)求 的進(jìn)程,進(jìn)而在后續(xù)過程中,通過運(yùn)行該進(jìn)程的方式來完成該業(yè)務(wù)請(qǐng)求的處理工作,并將得 到的處理結(jié)果返回給用戶。在此過程中,該進(jìn)程可能需要對(duì)服務(wù)器中的一些數(shù)據(jù)進(jìn)行操作, 但是,服務(wù)器中的數(shù)據(jù)通常都是共用的,換句話來說,不同的進(jìn)程可能都會(huì)對(duì)同一數(shù)據(jù)進(jìn)行 操作,若該進(jìn)程在操作服務(wù)器中某一數(shù)據(jù)的過程中,其他進(jìn)程也同時(shí)對(duì)該數(shù)據(jù)進(jìn)行了操作, 則該進(jìn)程所操作的數(shù)據(jù)則可能會(huì)因?yàn)槠渌M(jìn)程的操作而發(fā)生更改,從而給該進(jìn)程的運(yùn)行帶 來了影響。
[0004]為此,當(dāng)前通常都是采用一種鎖機(jī)制來保證進(jìn)程對(duì)數(shù)據(jù)進(jìn)行操作的過程中數(shù)據(jù)的 唯一性。具體的,進(jìn)程在對(duì)服務(wù)器中的某一數(shù)據(jù)進(jìn)行操作之前,可從鎖服務(wù)器(即向各進(jìn)程 分配鎖的服務(wù)器)中獲取鎖,進(jìn)而通過該鎖將該數(shù)據(jù)進(jìn)行鎖定,這樣一來,由于該數(shù)據(jù)已經(jīng) 被該進(jìn)程獲取的鎖進(jìn)行了鎖定,因此,該數(shù)據(jù)在被鎖定的期間,只有該進(jìn)程才能對(duì)它進(jìn)行操 作,而其他進(jìn)程只有等到該進(jìn)程運(yùn)行結(jié)束并將該鎖釋放后,才能陸續(xù)對(duì)該數(shù)據(jù)進(jìn)行操作。因 此,鎖機(jī)制有效的保證了進(jìn)程在進(jìn)行數(shù)據(jù)操作時(shí),數(shù)據(jù)的唯一性。
[0005] 然而,在實(shí)際應(yīng)用中,進(jìn)程獲取到的鎖通常都是由一臺(tái)鎖服務(wù)器提供的,倘若進(jìn)程 在獲取鎖的過程中,該鎖服務(wù)器出現(xiàn)了運(yùn)行異常等狀況,則該進(jìn)程通常只能進(jìn)行等待,直到 鎖服務(wù)器恢復(fù)正常運(yùn)行并向該進(jìn)程提供鎖后,才能進(jìn)行后續(xù)的工作,因此,當(dāng)鎖服務(wù)器出現(xiàn) 問題時(shí),將極大的降低業(yè)務(wù)服務(wù)器中進(jìn)程的運(yùn)行效率,繼而降低了業(yè)務(wù)服務(wù)器處理業(yè)務(wù)的 效率。
【發(fā)明內(nèi)容】
[0006] 本申請(qǐng)實(shí)施例提供一種資源處理的方法、裝置及系統(tǒng),用以解決現(xiàn)有技術(shù)中因鎖 服務(wù)器出現(xiàn)故障而導(dǎo)致業(yè)務(wù)服務(wù)器的業(yè)務(wù)處理效率降低的問題。
[0007] 本申請(qǐng)實(shí)施例提供的一種資源處理的方法,包括:
[0008] 確定進(jìn)程所需的資源;
[0009] 根據(jù)所述資源,向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的請(qǐng)求,其中,所述各 鎖服務(wù)器至少包含兩個(gè)鎖服務(wù)器;
[0010] 接收所述各鎖服務(wù)器根據(jù)所述請(qǐng)求返回的各操作結(jié)果;
[0011] 當(dāng)部分操作結(jié)果為操作失敗,且,另一部分操作結(jié)果為獲取鎖成功時(shí),通過所述進(jìn) 程獲取并處理所述資源,其中,返回操作結(jié)果為操作失敗的鎖服務(wù)器為出現(xiàn)故障的鎖服務(wù) 器。
[0012] 本申請(qǐng)實(shí)施例提供的一種資源處理的裝置,包括:
[0013] 確定模塊,用于確定進(jìn)程所需的資源;
[0014] 發(fā)送模塊,用于根據(jù)所述資源,向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的請(qǐng) 求,其中,所述各鎖服務(wù)器至少包含兩個(gè)鎖服務(wù)器;
[0015] 接收模塊,用于接收所述各鎖服務(wù)器根據(jù)所述請(qǐng)求返回的各操作結(jié)果;
[0016] 處理模塊,用于當(dāng)部分操作結(jié)果為操作失敗,且,另一部分操作結(jié)果為獲取鎖成功 時(shí),通過所述進(jìn)程獲取并處理所述資源,其中,返回操作結(jié)果為操作失敗的鎖服務(wù)器為出現(xiàn) 故障的鎖服務(wù)器。
[0017] 本申請(qǐng)實(shí)施例提供的一種資源處理的系統(tǒng),包括:
[0018] 業(yè)務(wù)服務(wù)器和至少兩個(gè)鎖服務(wù)器;
[0019] 業(yè)務(wù)服務(wù)器,用于確定進(jìn)程所需的資源,根據(jù)所述資源,向每個(gè)鎖服務(wù)器發(fā)送獲取 所述資源對(duì)應(yīng)的鎖的請(qǐng)求,接收各鎖服務(wù)器根據(jù)所述請(qǐng)求返回的各操作結(jié)果,當(dāng)部分操作 結(jié)果為操作失敗,且,另一部分操作結(jié)果為獲取成功時(shí),通過所述進(jìn)程獲取并處理所述資 源;
[0020] 鎖服務(wù)器,用于接收所述業(yè)務(wù)服務(wù)器發(fā)送的獲取所述資源對(duì)應(yīng)的鎖的請(qǐng)求,根據(jù) 所述請(qǐng)求向所述業(yè)務(wù)服務(wù)器返回操作結(jié)果,其中,當(dāng)所述資源的鎖未分配給其他進(jìn)程時(shí),則 將所述資源對(duì)應(yīng)的鎖返回給所述業(yè)務(wù)服務(wù)器,當(dāng)所述鎖服務(wù)器出現(xiàn)故障時(shí),則向所述業(yè)務(wù) 服務(wù)器返回操作失敗。
[0021] 本申請(qǐng)實(shí)施例提供一種資源處理的方法、裝置及系統(tǒng),該方法中業(yè)務(wù)服務(wù)器在確 定出進(jìn)程所需的資源后,可根據(jù)該資源,向各鎖服務(wù)器發(fā)送獲取該資源對(duì)應(yīng)的各鎖的請(qǐng)求, 相應(yīng)的,業(yè)務(wù)服務(wù)器可接收各鎖服務(wù)器根據(jù)該請(qǐng)求返回的各操作結(jié)果,其中,當(dāng)返回的部分 操作結(jié)果為操作失敗,且另一部分操作結(jié)果為獲取成功時(shí),則可通過該進(jìn)程獲取并處理所 述資源。從上述方法中可以看出,由于業(yè)務(wù)服務(wù)器可從至少兩個(gè)鎖服務(wù)器中獲取該進(jìn)程所 需的鎖,因此,即使一個(gè)鎖服務(wù)器出現(xiàn)了運(yùn)行故障,其他鎖服務(wù)器也能夠向該進(jìn)程分配鎖, 進(jìn)而有效的保證了該進(jìn)程的正常運(yùn)行,提高了業(yè)務(wù)服務(wù)器的業(yè)務(wù)處理效率。
【附圖說明】
[0022] 此處所說明的附圖用來提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申 請(qǐng)的示意性實(shí)施例及其說明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
[0023] 圖1為本申請(qǐng)實(shí)施例提供的資源處理的詳細(xì)過程;
[0024] 圖2為本申請(qǐng)實(shí)施例提供的一種資源處理的裝置結(jié)構(gòu)示意圖;
[0025]圖3為本申請(qǐng)實(shí)施例提供的一種資源處理的系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0026]為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)具體實(shí)施例及 相應(yīng)的附圖對(duì)本申請(qǐng)技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請(qǐng)一 部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做 出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
[0027]圖1為本申請(qǐng)實(shí)施例提供的資源處理的詳細(xì)過程,具體包括以下步驟:
[0028] S101:確定進(jìn)程所需的資源。
[0029] 在實(shí)際應(yīng)用中,進(jìn)程在運(yùn)行的過程中,通常都需要對(duì)該進(jìn)程所需的資源進(jìn)行一定 的處理,繼而才能完成該進(jìn)程的運(yùn)行,而通常情況下,進(jìn)程所處理的資源通常都是共用的, 即,不同的進(jìn)程在運(yùn)行時(shí)可能都需要對(duì)同一資源進(jìn)行處理,然而,一個(gè)進(jìn)程在對(duì)某一資源處 理的過程中,其他進(jìn)程也對(duì)該資源進(jìn)行了處理,則由于該資源會(huì)被不同的進(jìn)程同時(shí)進(jìn)行處 理,因此,這兩個(gè)進(jìn)程同時(shí)對(duì)該資源的處理也將會(huì)對(duì)彼此造成影響,繼而使得這兩個(gè)進(jìn)程可 能都會(huì)出現(xiàn)運(yùn)行不良的狀況。因此,為避免這一情況的發(fā)生,在現(xiàn)有技術(shù)中,通常都會(huì)采用 一種鎖機(jī)制來將進(jìn)程所需的資源進(jìn)行鎖定,該資源在鎖定的過程中,其他進(jìn)程將無法對(duì)該 資源進(jìn)行操作,這樣一來,該進(jìn)程在對(duì)該資源的操作過程中,該資源將不會(huì)受到其他進(jìn)程運(yùn) 行的影響,從而有效的保證了該進(jìn)程的正常運(yùn)行。
[0030] 而業(yè)務(wù)服務(wù)器中的進(jìn)程在對(duì)該進(jìn)程所需的資源進(jìn)行處理之前,需要向獲取能夠鎖 定該資源的鎖,因此,在本申請(qǐng)實(shí)施例中,該進(jìn)程在對(duì)所需的資源進(jìn)行處理之前,可先向能 夠向該進(jìn)程分配鎖的鎖服務(wù)器獲取該資源對(duì)應(yīng)的鎖,進(jìn)而在獲取到該資源對(duì)應(yīng)的鎖后,再 獲取該資源并處理。而在此之前,業(yè)務(wù)服務(wù)器可先接收用戶通過所持的終端發(fā)送的業(yè)務(wù)請(qǐng) 求,而后,通過解析該業(yè)務(wù)請(qǐng)求來生成處理該業(yè)務(wù)請(qǐng)求的一個(gè)進(jìn)程,業(yè)務(wù)服務(wù)器在生成該進(jìn) 程后,可進(jìn)一步的確定出該進(jìn)程所需的資源,進(jìn)而在后續(xù)過程中,通過確定出的該進(jìn)程所需 的資源,向鎖服務(wù)器發(fā)送獲取該資源所對(duì)應(yīng)的鎖的請(qǐng)求,其中,這里提到的終端可以是電 腦、智能手機(jī)、平板電腦等終端設(shè)備。
[0031] S102:根據(jù)所述資源,向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的請(qǐng)求,其中, 所述各鎖服務(wù)器至少包含兩個(gè)鎖服務(wù)器。
[0032] 在實(shí)際應(yīng)用中,鎖服務(wù)器可對(duì)不同的資源分別設(shè)置各個(gè)鎖并存儲(chǔ),后續(xù)在接收到 業(yè)務(wù)服務(wù)器發(fā)送的獲取鎖的請(qǐng)求后,可根據(jù)業(yè)務(wù)服務(wù)器發(fā)送的請(qǐng)求中包含的資源標(biāo)識(shí),確 定出該進(jìn)程所要獲取的資源,進(jìn)而將該資源對(duì)應(yīng)的鎖返回給進(jìn)程,而由于本申請(qǐng)實(shí)施例意 在解決一個(gè)鎖服務(wù)器在出現(xiàn)故障時(shí)將導(dǎo)致業(yè)務(wù)服務(wù)器業(yè)務(wù)處理效率降低的問題,因此,在 本申請(qǐng)實(shí)施例中,可預(yù)先設(shè)置不同的鎖服務(wù)器向業(yè)務(wù)服務(wù)器進(jìn)行鎖分配,其中,各鎖服務(wù)器 可針對(duì)同一資源分別設(shè)置不同的鎖并存儲(chǔ),而后,各鎖服務(wù)器可將各自存儲(chǔ)的對(duì)應(yīng)該資源 的鎖的標(biāo)識(shí)分別發(fā)送給業(yè)務(wù)服務(wù)器,業(yè)務(wù)服務(wù)器在接收到各鎖的標(biāo)識(shí)后,可將各標(biāo)識(shí)進(jìn)行 存儲(chǔ),例如,建立一個(gè)該資源與各鎖標(biāo)識(shí)對(duì)應(yīng)的表并存儲(chǔ),后續(xù)業(yè)務(wù)服務(wù)器在從各鎖服務(wù)器 獲取該資源對(duì)應(yīng)的各鎖時(shí),則可根據(jù)先前存儲(chǔ)的各鎖的標(biāo)識(shí),依次向各鎖服務(wù)器發(fā)送獲取 該資源對(duì)應(yīng)的各鎖的請(qǐng)求,其中,為了要保證在一個(gè)鎖服務(wù)器出現(xiàn)故障的情況下,該進(jìn)程依 然能從其他鎖服務(wù)器獲取到能夠鎖定該資源的鎖,因此,在本申請(qǐng)實(shí)施例中,鎖服務(wù)器應(yīng)至 少為兩個(gè),這樣,當(dāng)一個(gè)鎖服務(wù)器出現(xiàn)故障時(shí),另一個(gè)鎖服務(wù)器依然能夠保證向該業(yè)務(wù)服務(wù) 器中的該進(jìn)程分配該進(jìn)程所需資源對(duì)應(yīng)的鎖,從而在一定程度上保證了該進(jìn)程的順利運(yùn) 行,當(dāng)然,鎖服務(wù)器也可設(shè)置的較多一些,進(jìn)而可盡可能的降低因鎖服務(wù)器出現(xiàn)故障而導(dǎo)致 的業(yè)務(wù)服務(wù)器中進(jìn)程無法正常運(yùn)行的情況發(fā)生。
[0033] 需要說明的是,上述提到的各鎖服務(wù)器并不一定是一個(gè)專門用于向業(yè)務(wù)服務(wù)器中 各進(jìn)程分配鎖的服務(wù)器,這些鎖服務(wù)器可以是已存在的服務(wù)器,如,其他的業(yè)務(wù)服務(wù)器,專 門存儲(chǔ)數(shù)據(jù)的服務(wù)器等,為了使這些服務(wù)器能夠向業(yè)務(wù)服務(wù)器的進(jìn)程分配鎖,可事先對(duì)這 些服務(wù)器進(jìn)行一定的改進(jìn),如,可在這些服務(wù)器中集成一些功能模塊,使這些服務(wù)器能夠變 成具有向該業(yè)務(wù)服務(wù)器中的進(jìn)程分配鎖功能的鎖服務(wù)器,當(dāng)然也可采用其他的方法來使一 些服務(wù)器具備向業(yè)務(wù)服務(wù)器分配鎖的功能,在此就不進(jìn)行一一舉例說明了。
[0034] S103:接收所述各鎖服務(wù)器根據(jù)所述請(qǐng)求返回的各操作結(jié)果。
[0035] 各鎖服務(wù)器在接收到業(yè)務(wù)服務(wù)器發(fā)送的獲取該資源對(duì)應(yīng)的各鎖的請(qǐng)求后,將根據(jù) 該資源對(duì)應(yīng)的各鎖的使用情況,向業(yè)務(wù)服務(wù)器返回各鎖對(duì)應(yīng)的各操作結(jié)果,相應(yīng)的,后續(xù)業(yè) 務(wù)服務(wù)器的該進(jìn)程在接收到各鎖服務(wù)器返回的各操作結(jié)果后,可根據(jù)返回的各操作結(jié)果, 確定是否對(duì)該進(jìn)程所需的資源進(jìn)行處理。
[0036] 具體的,在本申請(qǐng)實(shí)施例中,該進(jìn)程在對(duì)所需的資源進(jìn)行操作之前,需要從各鎖服 務(wù)器中獲取到該資源對(duì)應(yīng)的各鎖,并當(dāng)獲取到各鎖后,再對(duì)該資源進(jìn)進(jìn)行處理,然而,各鎖 服務(wù)器的運(yùn)行狀況有時(shí)并不是完全相同的,即,在同一時(shí)刻,有的鎖服務(wù)器可能出現(xiàn)了運(yùn)行 故障,而有的鎖服務(wù)器則依然正常運(yùn)行,而為了保證業(yè)務(wù)服務(wù)器中進(jìn)程的正常運(yùn)行,當(dāng)一部 分鎖服務(wù)器出現(xiàn)故障時(shí),該進(jìn)程依然能夠從其他的鎖服務(wù)器獲取該進(jìn)程所需資源的各鎖, 進(jìn)而在獲取到各鎖后,對(duì)該資源進(jìn)行處理,但是,倘若一個(gè)進(jìn)程在從一部分鎖服務(wù)器獲取到 該進(jìn)程所需資源對(duì)應(yīng)的各鎖后,另一部分的鎖服務(wù)器又恢復(fù)了正常的運(yùn)行狀態(tài),則后續(xù)其 他進(jìn)程需要從鎖服務(wù)器中獲取該資源對(duì)應(yīng)的鎖時(shí),這部分恢復(fù)正常的鎖服務(wù)器將向該其他 進(jìn)程分配該資源對(duì)應(yīng)的各鎖,這樣一來,由于兩個(gè)進(jìn)程都從各鎖服務(wù)器獲取到了該資源所 對(duì)應(yīng)的鎖,因此,這兩個(gè)進(jìn)程將會(huì)同時(shí)對(duì)該資源進(jìn)行處理,進(jìn)而使得這兩個(gè)進(jìn)程可能都將無 法正常運(yùn)行。
[0037] 為了避免上述情況的發(fā)生,業(yè)務(wù)服務(wù)器中的進(jìn)程在向各鎖服務(wù)器獲取該進(jìn)程所需 資源對(duì)應(yīng)的各鎖時(shí),需要依次向各鎖服務(wù)器發(fā)送獲取該資源對(duì)應(yīng)的各鎖的請(qǐng)求,這樣一來, 各鎖服務(wù)器在接收到業(yè)務(wù)服務(wù)器發(fā)送的各請(qǐng)求后,也將分別向業(yè)務(wù)服務(wù)器返回各鎖的操作 結(jié)果,進(jìn)而,后續(xù)該業(yè)務(wù)服務(wù)器的進(jìn)程可根據(jù)各鎖服務(wù)器返回的各操作結(jié)果,確定出該資源 對(duì)應(yīng)的各鎖的使用情況,進(jìn)而確定出是否對(duì)該資源進(jìn)行處理。
[0038] S104:當(dāng)部分操作結(jié)果為操作失敗,且,另一部分操作結(jié)果為獲取鎖成功時(shí),通過 所述進(jìn)程獲取并處理所述資源,其中,返回操作結(jié)果為操作失敗的鎖服務(wù)器為出現(xiàn)故障的 鎖服務(wù)器。
[0039]業(yè)務(wù)服務(wù)器在獲取到各鎖服務(wù)器返回的各操作結(jié)果后,可根據(jù)各操作結(jié)果,進(jìn)一 步的確定出是否通過該進(jìn)程獲取并處理該資源,其中,由于各鎖服務(wù)器的運(yùn)行狀況并不是 完全相同的,因此,各鎖服務(wù)器向業(yè)務(wù)服務(wù)器返回的對(duì)應(yīng)各鎖的各操作結(jié)果可能也將是不 同的,當(dāng)各鎖服務(wù)器均處于正常運(yùn)行時(shí),則事先在沒有其他進(jìn)程獲取該資源對(duì)應(yīng)的各鎖的 情況下,各鎖服務(wù)器將根據(jù)業(yè)務(wù)服務(wù)器發(fā)送的獲取該資源對(duì)應(yīng)的各鎖的請(qǐng)求,分別將該資 源對(duì)應(yīng)的各鎖返回給該業(yè)務(wù)服務(wù)器,即,該業(yè)務(wù)服務(wù)器將從各鎖服務(wù)器中對(duì)應(yīng)該資源的各 鎖全部獲取到,而當(dāng)這些鎖服務(wù)器中,一部分出現(xiàn)了故障,而另一部分依舊正常運(yùn)行,則業(yè) 務(wù)服務(wù)器將從運(yùn)行正常的鎖服務(wù)器獲取到該資源對(duì)應(yīng)的各鎖,而由于本申請(qǐng)實(shí)施例意在保 證即使一個(gè)鎖服務(wù)器出現(xiàn)了故障,業(yè)務(wù)服務(wù)器依然能夠從其他鎖服務(wù)器中獲取到該資源所 對(duì)應(yīng)的鎖,進(jìn)而保證該進(jìn)程的正常運(yùn)行,因此,業(yè)務(wù)服務(wù)器從一部分運(yùn)行正常的鎖服務(wù)器獲 取到該資源對(duì)應(yīng)的各鎖,而并未從出現(xiàn)運(yùn)行故障的另一部分鎖服務(wù)器中獲取該資源對(duì)應(yīng)的 各鎖后,業(yè)務(wù)服務(wù)器可認(rèn)定成功的獲取了該資源對(duì)應(yīng)的鎖,繼而通過業(yè)務(wù)服務(wù)器中的該進(jìn) 程處理該資源,從而有效的保證了該進(jìn)程的正常運(yùn)行,提高了業(yè)務(wù)服務(wù)器在進(jìn)行業(yè)務(wù)處理 時(shí)的效率。
[0040] 當(dāng)然,各鎖服務(wù)器向業(yè)務(wù)服務(wù)器返回的各操作結(jié)果中除了包含有獲取鎖成功或是 操作失敗這兩種結(jié)果外,還可能包含有其他進(jìn)程已經(jīng)獲取到鎖的操作結(jié)果,出現(xiàn)這一操作 結(jié)果是因?yàn)椋趯?shí)際應(yīng)用中,當(dāng)各鎖服務(wù)器中的一部分鎖服務(wù)器出現(xiàn)了故障,而另一部分的 鎖服務(wù)器依然正常運(yùn)行時(shí),業(yè)務(wù)服務(wù)器可從運(yùn)行正常的這部分鎖服務(wù)器中獲取到各鎖,繼 而確定通過該進(jìn)程對(duì)應(yīng)該資源進(jìn)行處理,然而,在經(jīng)過一段時(shí)間后,出現(xiàn)故障的這部分鎖服 務(wù)器恢復(fù)了正常,則后續(xù)的其他進(jìn)程在向各鎖服務(wù)器獲取該資源對(duì)應(yīng)的各鎖時(shí),則將會(huì)從 先前出現(xiàn)故障的這部分鎖服務(wù)器中成功獲取到該資源對(duì)應(yīng)的鎖,而對(duì)于先前已經(jīng)將該資源 對(duì)應(yīng)的各鎖分配給該進(jìn)程的鎖服務(wù)器(即先前運(yùn)行正常的鎖服務(wù)器)來說,這些鎖服務(wù)器將 向該其他進(jìn)程返回鎖已被分配的操作結(jié)果,即,沖突操作結(jié)果,這時(shí),業(yè)務(wù)服務(wù)器可得知雖 然已從一部分鎖服務(wù)器獲取到了該資源對(duì)應(yīng)的各鎖,但是,有一部分鎖服務(wù)器事先已將該 資源對(duì)應(yīng)的鎖分配給了其他進(jìn)程,因此,業(yè)務(wù)服務(wù)器將進(jìn)一步的確定出當(dāng)前正有一個(gè)其他 進(jìn)程對(duì)該資源進(jìn)行處理,相應(yīng)的,為保證正在處理該資源的其他進(jìn)程能夠正常運(yùn)行,該業(yè)務(wù) 服務(wù)器將不通過該進(jìn)程處理該資源,同時(shí),將從一部分鎖服務(wù)器中獲取到的該資源對(duì)應(yīng)的 各鎖進(jìn)行釋放,并在等待設(shè)定時(shí)間長度后,重新向各鎖服務(wù)器發(fā)送獲取該資源對(duì)應(yīng)的各鎖 的請(qǐng)求。
[0041] 例如,假設(shè)業(yè)務(wù)服務(wù)器在接收到用戶A通過終端發(fā)送的業(yè)務(wù)請(qǐng)求后,可通過解析該 業(yè)務(wù)請(qǐng)求而生成出一個(gè)進(jìn)程A,相應(yīng)的,該業(yè)務(wù)服務(wù)器可進(jìn)一步的確定出該進(jìn)程A所需的資 源a,并根據(jù)確定出的資源a,向4個(gè)鎖服務(wù)器發(fā)送獲取該資源a對(duì)應(yīng)的各鎖的請(qǐng)求,而在獲取 鎖的過程中,2個(gè)鎖服務(wù)器由于出現(xiàn)了故障,因此,將無法向該業(yè)務(wù)服務(wù)器返回該資源a對(duì)應(yīng) 的各鎖,相應(yīng)的,這兩個(gè)出現(xiàn)故障的鎖服務(wù)器將向業(yè)務(wù)服務(wù)器返回兩個(gè)操作失敗的操作結(jié) 果,而對(duì)于另兩個(gè)鎖服務(wù)器來說,由于這兩個(gè)鎖服務(wù)器處于正常運(yùn)行的狀態(tài),因此,這兩個(gè) 運(yùn)行正常的鎖服務(wù)器可向業(yè)務(wù)服務(wù)器返回該資源a所對(duì)應(yīng)的鎖,即,業(yè)務(wù)服務(wù)器獲取到的這 兩個(gè)鎖服務(wù)器返回的操作結(jié)果為獲取鎖成功,相應(yīng)的,由于該業(yè)務(wù)服務(wù)器從兩個(gè)鎖服務(wù)器 獲取到了該資源a對(duì)應(yīng)的鎖,并從另兩個(gè)鎖服務(wù)器獲取到了操作失敗的操作結(jié)果,則該業(yè)務(wù) 服務(wù)器則可認(rèn)定該資源a當(dāng)前并沒有被其他進(jìn)程所占用,進(jìn)而通過生成的進(jìn)程A來對(duì)該資源 a進(jìn)行處理。而后,業(yè)務(wù)服務(wù)器后續(xù)在接收到了用戶B發(fā)送的業(yè)務(wù)請(qǐng)求后發(fā)現(xiàn),根據(jù)該業(yè)務(wù)請(qǐng) 求而生成的進(jìn)程B也需要對(duì)資源a進(jìn)行處理,則業(yè)務(wù)服務(wù)器可向這4個(gè)鎖服務(wù)器分別發(fā)送獲 取資源a對(duì)應(yīng)的各鎖的請(qǐng)求,此時(shí),先前出現(xiàn)運(yùn)行故障的兩個(gè)鎖服務(wù)器已經(jīng)恢復(fù)了正常運(yùn) 行,則這兩個(gè)鎖服務(wù)器在接收到業(yè)務(wù)服務(wù)器發(fā)送的請(qǐng)求后,可向該業(yè)務(wù)服務(wù)器返回該資源a 所對(duì)應(yīng)的鎖,即,業(yè)務(wù)服務(wù)器接收到的這兩個(gè)鎖服務(wù)器返回的操作結(jié)果為獲取鎖成功,而對(duì) 于另兩個(gè)鎖服務(wù)器來說,由于這兩個(gè)鎖服務(wù)器先前已將該資源a對(duì)應(yīng)的鎖分配給了進(jìn)程A, 因此,當(dāng)這兩個(gè)鎖服務(wù)器接收到業(yè)務(wù)服務(wù)器針對(duì)進(jìn)程B而發(fā)送的請(qǐng)求后,可向業(yè)務(wù)服務(wù)器返 回該資源a的鎖已分配給了其他的進(jìn)程,即,業(yè)務(wù)服務(wù)器接收到的這兩個(gè)鎖服務(wù)器返回的操 作結(jié)果為沖突操作結(jié)果,相應(yīng)的,該業(yè)務(wù)服務(wù)器可確定出該資源a當(dāng)前正被其他進(jìn)程所占 用,進(jìn)而不通過該進(jìn)程B獲取并處理該資源a,與此同時(shí),該業(yè)務(wù)服務(wù)器可將針對(duì)進(jìn)程B而獲 取到的該資源a所對(duì)應(yīng)的鎖進(jìn)行釋放,并等待設(shè)定時(shí)間長度后,重新向這4個(gè)鎖服務(wù)器發(fā)送 獲取該資源a對(duì)應(yīng)的各鎖的請(qǐng)求,其中,當(dāng)?shù)却O(shè)定時(shí)間長度后,進(jìn)程A結(jié)束了運(yùn)行并將其所 持有的鎖進(jìn)行了釋放,則該業(yè)務(wù)服務(wù)器可針對(duì)進(jìn)程B從這4個(gè)鎖服務(wù)器全部獲取到該資源a 所對(duì)應(yīng)的各鎖,進(jìn)而在全部獲取到這4個(gè)鎖后,確定通過進(jìn)程B獲取該資源a并處理。
[0042]由此可以看出,業(yè)務(wù)服務(wù)器從各鎖服務(wù)器獲取到的操作結(jié)果基本上可以分為三種 結(jié)果,即,當(dāng)鎖服務(wù)器運(yùn)行正常且沒有將該資源對(duì)應(yīng)的鎖分配給其他進(jìn)程時(shí),業(yè)務(wù)服務(wù)器將 從鎖服務(wù)器獲取到的操作結(jié)果為獲取鎖成功,而當(dāng)鎖服務(wù)器運(yùn)行正常,但是已將該資源對(duì) 應(yīng)的鎖分配給了其他進(jìn)程時(shí),業(yè)務(wù)服務(wù)器將從鎖服務(wù)器獲取到的操作結(jié)果為沖突操作結(jié) 果,當(dāng)鎖服務(wù)器出現(xiàn)故障時(shí),業(yè)務(wù)服務(wù)器將從鎖服務(wù)器獲取到的操作結(jié)果為操作失敗。相應(yīng) 的,業(yè)務(wù)服務(wù)器接收到的各鎖服務(wù)器返回的操作結(jié)果中可能只包含有一種操作結(jié)果,或是 可能包含兩種操作結(jié)果,也或是三種操作結(jié)果都包含,而業(yè)務(wù)服務(wù)器在接收到各鎖服務(wù)器 返回的各操作結(jié)果后,可根據(jù)各操作結(jié)果,來確定是否通過所述進(jìn)程處理所述資源,如表1 所示。
[0045] 表 1
[0046] 從表1中可以看出,當(dāng)業(yè)務(wù)服務(wù)器接收到的各鎖服務(wù)器返回的各操作結(jié)果中包含 有沖突操作結(jié)果時(shí),則即使業(yè)務(wù)服務(wù)器獲取到的各操作結(jié)果中還包含有操作失敗或是獲取 鎖成功,也將不通過所述進(jìn)程處理所述資源,而當(dāng)業(yè)務(wù)服務(wù)器接收到的各操作結(jié)果中一部 分為操作失敗,而另一部分為獲取鎖成功時(shí),則業(yè)務(wù)服務(wù)器可通過所述進(jìn)程處理所述資源, 因此,從上述方法中可以看出,即使一個(gè)鎖服務(wù)器出現(xiàn)了故障而無法向業(yè)務(wù)服務(wù)器返回該 資源對(duì)應(yīng)的鎖,業(yè)務(wù)服務(wù)器也可從其他正常運(yùn)行的鎖服務(wù)器中獲取到該資源對(duì)應(yīng)的鎖,從 而有效的保證了該進(jìn)程的順利運(yùn)行,進(jìn)而提高了業(yè)務(wù)服務(wù)器業(yè)務(wù)處理的效率。
[0047] 需要說明的是,上述說明的鎖服務(wù)器出現(xiàn)故障的情況并不是鎖服務(wù)器完全無法運(yùn) 行的情況,而是指鎖服務(wù)器向業(yè)務(wù)服務(wù)器的進(jìn)程提供鎖的功能出現(xiàn)了故障,這樣一來,當(dāng)鎖 服務(wù)器接收到了業(yè)務(wù)服務(wù)器發(fā)送的獲取所述資源對(duì)應(yīng)的鎖的請(qǐng)求后,鎖服務(wù)器可得知當(dāng)前 自身的向業(yè)務(wù)服務(wù)器的進(jìn)程分配鎖的功能出現(xiàn)了故障,繼而向業(yè)務(wù)服務(wù)器返回的操作結(jié)果 即為操作失敗。當(dāng)然,當(dāng)鎖服務(wù)器完全無法運(yùn)行時(shí),鎖服務(wù)器即使接收到了業(yè)務(wù)服務(wù)器發(fā)送 的獲取鎖的請(qǐng)求,鎖服務(wù)器可能也將無法響應(yīng)該請(qǐng)求,因此,對(duì)于這種情況來說,當(dāng)鎖服務(wù) 器完全出現(xiàn)故障時(shí),業(yè)務(wù)服務(wù)器將無法接收到該鎖服務(wù)器返回的操作結(jié)果,但是,由于其他 運(yùn)行正?;騼H是分配鎖功能出現(xiàn)故障的鎖服務(wù)器依然可以向業(yè)務(wù)服務(wù)器返回各操作結(jié)果, 因此,業(yè)務(wù)服務(wù)器可根據(jù)接收到的各操作結(jié)果來確定是否通過所述進(jìn)程處理所述資源。
[0048] 在本申請(qǐng)實(shí)施例中,當(dāng)業(yè)務(wù)服務(wù)器根據(jù)各鎖服務(wù)器返回的各操作結(jié)果確定出該資 源當(dāng)前正被其他進(jìn)程所占用時(shí),也可隨機(jī)等待一段時(shí)間,并在等待確定的隨機(jī)時(shí)間長度后, 重新向各鎖服務(wù)器發(fā)送獲取該資源對(duì)應(yīng)的各鎖的請(qǐng)求,其中,隨機(jī)的時(shí)間范圍可設(shè)定在一 個(gè)合理的時(shí)間范圍內(nèi),以防止隨機(jī)得到的時(shí)間過長而延長該進(jìn)程運(yùn)行的問題出現(xiàn),而具體 的設(shè)定方式可以是例如預(yù)先設(shè)定一個(gè)合理的最大時(shí)間,然后再將該最大時(shí)間與一個(gè)〇到1的 隨機(jī)數(shù)進(jìn)行相乘,得到隨機(jī)時(shí)間長度,當(dāng)然,確定隨機(jī)時(shí)間長度也可由其他的方式來實(shí)現(xiàn), 在此就不進(jìn)行詳細(xì)說明了。
[0049] 另外,在實(shí)際應(yīng)用中,除了因鎖服務(wù)器出現(xiàn)故障而導(dǎo)致向業(yè)務(wù)服務(wù)器返回操作失 敗的情況發(fā)生外,鎖服務(wù)器和業(yè)務(wù)服務(wù)器之間出現(xiàn)通信故障也將導(dǎo)致無法獲取鎖的情況發(fā) 生,因此,對(duì)于這種情況來說,業(yè)務(wù)服務(wù)器在向鎖服務(wù)器發(fā)送獲取上述資源對(duì)應(yīng)的各鎖的請(qǐng) 求時(shí),若業(yè)務(wù)服務(wù)器和鎖服務(wù)器之間出現(xiàn)了通信故障,則業(yè)務(wù)服務(wù)器將無法將這一請(qǐng)求發(fā) 送至鎖服務(wù)器,或是即使鎖服務(wù)器與業(yè)務(wù)服務(wù)器在出現(xiàn)通信故障之前,鎖服務(wù)器接收到了 業(yè)務(wù)服務(wù)器發(fā)送的獲取鎖的請(qǐng)求,則當(dāng)鎖服務(wù)器與業(yè)務(wù)服務(wù)器出現(xiàn)通信故障時(shí),鎖服務(wù)器 也將無法將操作結(jié)果返回給業(yè)務(wù)服務(wù)器,因此,對(duì)于這種情況來說,業(yè)務(wù)服務(wù)器向各鎖服務(wù) 器發(fā)送的獲取鎖的請(qǐng)求的數(shù)量將大于各鎖服務(wù)器向業(yè)務(wù)服務(wù)器返回的操作結(jié)果的數(shù)量,但 是,即使一部分鎖服務(wù)器與業(yè)務(wù)服務(wù)器之間出現(xiàn)了通信故障,業(yè)務(wù)服務(wù)器依然可以根據(jù)接 收到的各操作結(jié)果來確定是否通過所述進(jìn)程處理所述資源,具體的確定方式可以參照表1 的方式來進(jìn)行,在此就不再進(jìn)行詳細(xì)贅述了。
[0050] 以上為本申請(qǐng)實(shí)施例提供的資源處理的方法,基于同樣的思路,本申請(qǐng)實(shí)施例還 提供一種資源處理的裝置,如圖2所示。
[0051] 圖2為本申請(qǐng)實(shí)施例提供的一種資源處理的裝置結(jié)構(gòu)示意圖,具體包括:
[0052]確定模塊201,用于確定進(jìn)程所需的資源;
[0053]發(fā)送模塊202,用于根據(jù)所述資源,向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的 請(qǐng)求,其中,所述各鎖服務(wù)器至少包含兩個(gè)鎖服務(wù)器;
[0054]接收模塊203,用于接收所述各鎖服務(wù)器根據(jù)所述請(qǐng)求返回的各操作結(jié)果;
[0055]處理模塊204,用于當(dāng)部分操作結(jié)果為操作失敗,且,另一部分操作結(jié)果為獲取鎖 成功時(shí),通過所述進(jìn)程獲取并處理所述資源,其中,返回操作結(jié)果為操作失敗的鎖服務(wù)器為 出現(xiàn)故障的鎖服務(wù)器。
[0056]所述處理模塊204還用于,當(dāng)通過所述接收模塊203接收到的各操作結(jié)果均為獲取 成功時(shí),通過所述進(jìn)程獲取并處理所述資源;
[0057]所述處理模塊204還用于,當(dāng)通過所述接收模塊203接收到的各操作結(jié)果中包含沖 突操作結(jié)果或均為操作失敗時(shí),不通過所述進(jìn)程獲取并處理所述資源,其中,返回操作結(jié)果 為沖突操作結(jié)果的鎖服務(wù)器為:已將所述資源對(duì)應(yīng)的鎖分配給其他進(jìn)程的鎖服務(wù)器。
[0058]所述處理模塊204還用于,當(dāng)通過所述接收模塊203接收到的各操作結(jié)果中包含沖 突操作結(jié)果時(shí),將通過所述進(jìn)程獲取到的所述資源對(duì)應(yīng)的鎖釋放;等待設(shè)定時(shí)間長度后,指 示所述發(fā)送模塊202重新向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的請(qǐng)求。
[0059] 所述處理模塊204還用于,隨機(jī)確定時(shí)間長度;等待隨機(jī)確定的所述時(shí)間長度后, 指示所述發(fā)送模塊202重新向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的請(qǐng)求。
[0060] 上述說明的業(yè)務(wù)服務(wù)器和各鎖服務(wù)器也可位于一個(gè)系統(tǒng)中,如圖3所示。
[0061] 圖3為本申請(qǐng)實(shí)施例提供的一種資源處理的系統(tǒng)的示意圖,具體包括:
[0062] 業(yè)務(wù)服務(wù)器301和至少兩個(gè)鎖服務(wù)器302;
[0063]所述業(yè)務(wù)服務(wù)器301,用于確定進(jìn)程所需的資源,根據(jù)所述資源,向每個(gè)鎖服務(wù)器 302發(fā)送獲取所述資源對(duì)應(yīng)的鎖的請(qǐng)求,接收各鎖服務(wù)器302根據(jù)所述請(qǐng)求返回的各操作結(jié) 果,當(dāng)部分操作結(jié)果為操作失敗,且,另一部分操作結(jié)果為獲取成功時(shí),通過所述進(jìn)程獲取 并處理所述資源;
[0064]所述鎖服務(wù)器302,用于接收所述業(yè)務(wù)服務(wù)器301發(fā)送的獲取所述資源對(duì)應(yīng)的鎖的 請(qǐng)求,根據(jù)所述請(qǐng)求向所述業(yè)務(wù)服務(wù)器301返回操作結(jié)果,其中,當(dāng)所述資源的鎖未分配給 其他進(jìn)程時(shí),則將所述資源對(duì)應(yīng)的鎖返回給所述業(yè)務(wù)服務(wù)器301,當(dāng)所述鎖服務(wù)器302出現(xiàn) 故障時(shí),則向所述業(yè)務(wù)服務(wù)器301返回操作失敗。
[0065]所述業(yè)務(wù)服務(wù)器301還用于,當(dāng)接收到的各操作結(jié)果均為獲取鎖成功時(shí),通過所述 進(jìn)程獲取并處理所述資源;當(dāng)接收到的各操作結(jié)果中包含沖突操作結(jié)果或均為操作失敗 時(shí),不通過所述進(jìn)程獲取并處理所述資源;
[0066]所述鎖服務(wù)器302還用于,當(dāng)接收所述業(yè)務(wù)服務(wù)器301發(fā)送的獲取所述資源對(duì)應(yīng)的 鎖的請(qǐng)求后,確定所述資源對(duì)應(yīng)的鎖分配給其他進(jìn)程時(shí),則向所述業(yè)務(wù)服務(wù)器301返回沖突 操作結(jié)果。
[0067]本申請(qǐng)實(shí)施例提供一種資源處理的方法、裝置及系統(tǒng),該方法中業(yè)務(wù)服務(wù)器在確 定出進(jìn)程所需的資源后,可根據(jù)該資源,向各鎖服務(wù)器發(fā)送獲取該資源對(duì)應(yīng)的各鎖的請(qǐng)求, 相應(yīng)的,業(yè)務(wù)服務(wù)器可接收各鎖服務(wù)器根據(jù)該請(qǐng)求返回的各操作結(jié)果,其中,當(dāng)返回的部分 操作結(jié)果為操作失敗,且另一部分操作結(jié)果為獲取成功時(shí),則可通過該進(jìn)程獲取并處理所 述資源。從上述方法中可以看出,由于業(yè)務(wù)服務(wù)器可從至少兩個(gè)鎖服務(wù)器中獲取該進(jìn)程所 需的鎖,因此,即使一個(gè)鎖服務(wù)器出現(xiàn)了運(yùn)行故障,其他鎖服務(wù)器也能夠向該進(jìn)程分配鎖, 進(jìn)而有效的保證了該進(jìn)程的正常運(yùn)行,提高了業(yè)務(wù)服務(wù)器的業(yè)務(wù)處理效率。
[0068] 在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng) 絡(luò)接口和內(nèi)存。
[0069] 內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或 非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的 示例。
[0070] 計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法 或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。 計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng) 態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除 可編程只讀存儲(chǔ)器(EEPR0M)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、 數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備 或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算 機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
[0071] 還需要說明的是,術(shù)語"包括"、"包含"或者其任何其他變體意在涵蓋非排他性的 包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包 括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要 素。在沒有更多限制的情況下,由語句"包括一個(gè)……"限定的要素,并不排除在包括所述要 素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
[0072] 本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。 因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的 形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存 儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形 式。
[0073] 以上所述僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員 來說,本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同 替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種資源處理的方法,其特征在于,包括: 確定進(jìn)程所需的資源; 根據(jù)所述資源,向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的請(qǐng)求,其中,所述各鎖服 務(wù)器至少包含兩個(gè)鎖服務(wù)器; 接收所述各鎖服務(wù)器根據(jù)所述請(qǐng)求返回的各操作結(jié)果; 當(dāng)部分操作結(jié)果為操作失敗,且,另一部分操作結(jié)果為獲取鎖成功時(shí),通過所述進(jìn)程獲 取并處理所述資源,其中,返回操作結(jié)果為操作失敗的鎖服務(wù)器為出現(xiàn)故障的鎖服務(wù)器。2. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)接收到的各操作結(jié)果均為獲取鎖成功時(shí),通過所述進(jìn)程獲取并處理所述資源; 當(dāng)接收到的各操作結(jié)果中包含沖突操作結(jié)果或者均為操作失敗時(shí),不通過所述進(jìn)程獲 取并處理所述資源,其中,返回操作結(jié)果為沖突操作結(jié)果的鎖服務(wù)器為:已將所述資源對(duì)應(yīng) 的鎖分配給其他進(jìn)程的鎖服務(wù)器。3. 如權(quán)利要求2所述的方法,其特征在于,當(dāng)接收到的各操作結(jié)果中包含沖突操作結(jié)果 時(shí),所述方法還包括: 將通過所述進(jìn)程獲取到的所述資源對(duì)應(yīng)的鎖釋放; 等待設(shè)定時(shí)間長度后,重新向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的請(qǐng)求。4. 如權(quán)利要求3所述的方法,其特征在于,等待設(shè)定時(shí)間長度后,重新向各鎖服務(wù)器發(fā) 送獲取所述資源對(duì)應(yīng)的各鎖的請(qǐng)求,具體包括: 隨機(jī)確定時(shí)間長度; 等待隨機(jī)確定的所述時(shí)間長度后,重新向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的 請(qǐng)求。5. -種資源處理的裝置,其特征在于,包括: 確定模塊,用于確定進(jìn)程所需的資源; 發(fā)送模塊,用于根據(jù)所述資源,向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng)的各鎖的請(qǐng)求,其 中,所述各鎖服務(wù)器至少包含兩個(gè)鎖服務(wù)器; 接收模塊,用于接收所述各鎖服務(wù)器根據(jù)所述請(qǐng)求返回的各操作結(jié)果; 處理模塊,用于當(dāng)部分操作結(jié)果為操作失敗,且,另一部分操作結(jié)果為獲取鎖成功時(shí), 通過所述進(jìn)程獲取并處理所述資源,其中,返回操作結(jié)果為操作失敗的鎖服務(wù)器為出現(xiàn)故 障的鎖服務(wù)器。6. 如權(quán)利要求5所述的裝置,其特征在于,所述處理模塊還用于,當(dāng)通過所述接收模塊 接收到的各操作結(jié)果均為獲取成功時(shí),通過所述進(jìn)程獲取并處理所述資源; 所述處理模塊還用于,當(dāng)通過所述接收模塊接收到的各操作結(jié)果中包含沖突操作結(jié)果 或均為操作失敗時(shí),不通過所述進(jìn)程獲取并處理所述資源,其中,返回操作結(jié)果為沖突操作 結(jié)果的鎖服務(wù)器為:已將所述資源對(duì)應(yīng)的鎖分配給其他進(jìn)程的鎖服務(wù)器。7. 如權(quán)利要求6所述的裝置,其特征在于,所述處理模塊還用于,當(dāng)通過所述接收模塊 接收到的各操作結(jié)果中包含沖突操作結(jié)果時(shí),將通過所述進(jìn)程獲取到的所述資源對(duì)應(yīng)的鎖 釋放;等待設(shè)定時(shí)間長度后,指示所述發(fā)送模塊重新向各鎖服務(wù)器發(fā)送獲取所述資源對(duì)應(yīng) 的各鎖的請(qǐng)求。8. 如權(quán)利要求7所述的裝置,其特征在于,所述處理模塊還用于,隨機(jī)確定時(shí)間長度;等 待隨機(jī)確定的所述時(shí)間長度后,指示所述發(fā)送模塊重新向各鎖服務(wù)器發(fā)送獲取所述資源對(duì) 應(yīng)的各鎖的請(qǐng)求。9. 一種資源處理的系統(tǒng),其特征在于,所述系統(tǒng)包括業(yè)務(wù)服務(wù)器和至少兩個(gè)鎖服務(wù)器: 所述業(yè)務(wù)服務(wù)器,用于確定進(jìn)程所需的資源,根據(jù)所述資源,向每個(gè)鎖服務(wù)器發(fā)送獲取 所述資源對(duì)應(yīng)的鎖的請(qǐng)求,接收各鎖服務(wù)器根據(jù)所述請(qǐng)求返回的各操作結(jié)果,當(dāng)部分操作 結(jié)果為操作失敗,且,另一部分操作結(jié)果為獲取成功時(shí),通過所述進(jìn)程獲取并處理所述資 源; 所述鎖服務(wù)器,用于接收所述業(yè)務(wù)服務(wù)器發(fā)送的獲取所述資源對(duì)應(yīng)的鎖的請(qǐng)求,根據(jù) 所述請(qǐng)求向所述業(yè)務(wù)服務(wù)器返回操作結(jié)果,其中,當(dāng)所述資源的鎖未分配給其他進(jìn)程時(shí),則 將所述資源對(duì)應(yīng)的鎖返回給所述業(yè)務(wù)服務(wù)器,當(dāng)所述鎖服務(wù)器出現(xiàn)故障時(shí),則向所述業(yè)務(wù) 服務(wù)器返回操作失敗。10. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述業(yè)務(wù)服務(wù)器還用于,當(dāng)接收到的各操作 結(jié)果均為獲取鎖成功時(shí),通過所述進(jìn)程獲取并處理所述資源;當(dāng)接收到的各操作結(jié)果中包 含沖突操作結(jié)果或均為操作失敗時(shí),不通過所述進(jìn)程獲取并處理所述資源; 所述鎖服務(wù)器還用于,當(dāng)接收所述業(yè)務(wù)服務(wù)器發(fā)送的獲取所述資源對(duì)應(yīng)的鎖的請(qǐng)求 后,確定所述資源對(duì)應(yīng)的鎖分配給其他進(jìn)程時(shí),則向所述業(yè)務(wù)服務(wù)器返回沖突操作結(jié)果。
【文檔編號(hào)】G06F9/52GK106095594SQ201610381984
【公開日】2016年11月9日
【申請(qǐng)日】2016年6月1日 公開號(hào)201610381984.1, CN 106095594 A, CN 106095594A, CN 201610381984, CN-A-106095594, CN106095594 A, CN106095594A, CN201610381984, CN201610381984.1
【發(fā)明人】黃旭
【申請(qǐng)人】新浪網(wǎng)技術(shù)(中國)有限公司