本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種目標(biāo)對象的信息的處理方法和裝置。
背景技術(shù):
在大型網(wǎng)絡(luò)游戲中,為了豐富游戲形式,通過會在網(wǎng)絡(luò)游戲中增加副本。網(wǎng)絡(luò)游戲中的副本,從設(shè)計層面上是為了讓有限個玩家角色在不受干擾的情況下在相同區(qū)域進(jìn)行冒險,從技術(shù)層面上副本是管理一組特定的角色,及該組角色所處的游戲狀態(tài)。副本通常要包含所有參與該副本的角色的信息,例如角色的id,角色的屬性,角色的裝備等等,和副本本身的信息,例如當(dāng)前刷到第幾波怪物,副本剩余時間等等。玩家在游戲客戶端通過界面操作,向服務(wù)器請求加入副本,服務(wù)器校驗(yàn)該玩家角色進(jìn)入該副本的條件是否滿足,滿足的話將該玩家加入到該副本的玩家管理器中,不滿足的話則返回錯誤信息,退出副本的時候類似。通過副本對狀態(tài)的管理,以及對出入副本的條件加以限制,隔絕了副本內(nèi)和副本外的玩家角色,從而使副本內(nèi)的角色可以不受干擾的進(jìn)行冒險。對出入副本的條件加以限制其中一個非常有效的做法就是罰時——當(dāng)玩家退出副本之后,懲罰其一定時間內(nèi)不能再次進(jìn)入該副本,在懲罰時間到達(dá)的時候,告知玩家。
在現(xiàn)有的游戲服務(wù)器中,為了實(shí)現(xiàn)這種機(jī)制,現(xiàn)有通常的做法是,在玩家退出的時候,用一張哈希表存儲玩家退出的時間,如圖1所示,然后每秒鐘都遍歷這個哈希表里的所有玩家,發(fā)現(xiàn)某個玩家罰時的時間到了,就從該哈希表中刪除該玩家,并告知該玩家罰時時間到,實(shí)現(xiàn)流程如圖2所示。
由于每秒鐘都需要遍歷輪詢哈希表里的每一個玩家,這部分的時間復(fù)雜度正比于哈希表里即正比于玩家個數(shù)n,被懲罰的玩家越多,每秒消耗在輪詢上的時間越多,效率不夠高。
針對現(xiàn)有技術(shù)中通過遍歷輪詢的方式處理每個目標(biāo)對象的信息,復(fù)雜度較高,效率較低的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種目標(biāo)對象的信息的處理方法和裝置,以至少解決現(xiàn)有技術(shù)中通過遍歷輪詢的方式處理每個目標(biāo)對象的信息,復(fù)雜度較高,效率較低的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個方面,提供了一種目標(biāo)對象的信息的處理方法,包括:獲取處于隊列的頭部的目標(biāo)對象的信息,其中,所述隊列用于存儲退出預(yù)設(shè)群組的多個目標(biāo)對象的信息,所述隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,所述目標(biāo)對象的信息至少包括:所述目標(biāo)對象退出所述預(yù)設(shè)群組的時間;判斷所述目標(biāo)對象退出所述預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,其中,所述預(yù)設(shè)時長為允許所述目標(biāo)對象再次加入所述預(yù)設(shè)群組的等待時長;如果所述目標(biāo)對象退出所述預(yù)設(shè)群組的時長到達(dá)所述預(yù)設(shè)時長,則從所述隊列中刪除所述目標(biāo)對象的信息。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種目標(biāo)對象的信息的處理裝置,包括:第一獲取模塊,用于獲取處于隊列的頭部的目標(biāo)對象的信息,其中,所述隊列用于存儲退出預(yù)設(shè)群組的多個目標(biāo)對象的信息,所述隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,所述目標(biāo)對象的信息至少包括:所述目標(biāo)對象退出所述預(yù)設(shè)群組的時間;判斷模塊,用于判斷所述目標(biāo)對象退出所述預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,其中,所述預(yù)設(shè)時長為允許所述目標(biāo)對象再次加入所述預(yù)設(shè)群組的等待時長;刪除模塊如果所述目標(biāo)對象退出所述預(yù)設(shè)群組的時長到達(dá)所述預(yù)設(shè)時長,則從所述隊列中刪除所述目標(biāo)對象的信息。
在本發(fā)明實(shí)施例中,獲取處于隊列的頭部的目標(biāo)對象的信息,判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。
容易注意到,由于隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,可以獲取處于隊列的頭部的目標(biāo)對象的信息,如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。因此,通過本發(fā)明實(shí)施例所提供的方案,可以通過使用單調(diào)隊列來妥善有序的組織目標(biāo)對象的信息,而不是胡亂的將目標(biāo)對象的信息集中在一起進(jìn)行輪詢,從而達(dá)到增加輪詢的效率,減輕服務(wù)器的計算負(fù)荷的效果。
由此,本發(fā)明提供的上述實(shí)施例解決了現(xiàn)有技術(shù)中通過遍歷輪詢的方式處理每個目標(biāo)對象的信息,復(fù)雜度較高,效率較低的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)現(xiàn)有技術(shù)的一種基于哈希表結(jié)構(gòu)存儲游戲玩家的信息的示意圖;
圖2是根據(jù)現(xiàn)有技術(shù)的一種基于哈希表結(jié)構(gòu)處理游戲玩家的信息的流程圖;
圖3是本發(fā)明實(shí)施例的一種目標(biāo)對象的信息的處理方法的計算機(jī)終端的硬件結(jié)構(gòu)框圖;
圖4是根據(jù)本發(fā)明實(shí)施例的一種目標(biāo)對象的信息的處理方法的流程圖;
圖5是根據(jù)本發(fā)明實(shí)施例的一種可選的隊列結(jié)構(gòu)的示意圖;
圖6是根據(jù)本發(fā)明實(shí)施例的一種可選的目標(biāo)對象的信息的處理方法的流程圖;
圖7是根據(jù)本發(fā)明實(shí)施例的一種目標(biāo)對象的信息的處理裝置的示意圖;
圖8是根據(jù)本發(fā)明實(shí)施例的一種可選的目標(biāo)對象的信息的處理裝置的示意圖;
圖9是根據(jù)本發(fā)明實(shí)施例的一種可選的目標(biāo)對象的信息的處理裝置的示意圖;
圖10是根據(jù)本發(fā)明實(shí)施例的一種可選的目標(biāo)對象的信息的處理裝置的示意圖;
圖11是根據(jù)本發(fā)明實(shí)施例的一種可選的目標(biāo)對象的信息的處理裝置的示意圖;
圖12是根據(jù)本發(fā)明實(shí)施例的一種可選的目標(biāo)對象的信息的處理裝置的示意圖;以及
圖13是根據(jù)本發(fā)明實(shí)施例的一種計算機(jī)終端的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
下面,首先對本發(fā)明實(shí)施例中涉及的相關(guān)技術(shù)術(shù)語進(jìn)行解釋,以方便對本發(fā)明實(shí)施例的理解。
單調(diào)隊列:具有單調(diào)性的先進(jìn)先出的隊列,建立單調(diào)隊列和建立普通隊列類似都是使用單向鏈表,只是加多了一個限制,就是元素在插入到這個隊列的尾部的時候要保證和該隊列里其他元素的單調(diào)性。
實(shí)施例一
根據(jù)本發(fā)明實(shí)施例,提供了一種目標(biāo)對象的信息的處理方法的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明實(shí)施例一所提供的方法實(shí)施例可以在通信設(shè)備、計算機(jī)終端或者類似的運(yùn)算裝置中執(zhí)行。以運(yùn)行在計算機(jī)終端為例,圖3是本發(fā)明實(shí)施例的一種目標(biāo)對象的信息的處理方法的計算機(jī)終端的硬件結(jié)構(gòu)框圖。如圖3所示,計算機(jī)終端30可以包括一個或多個(圖中僅示出一個)處理器302(處理器302可以包括但不限于微處理器MCU或可編程邏輯器件FPGA等的處理裝置)、用于存儲數(shù)據(jù)的存儲器304、以及用于通信功能的傳輸模塊306。本領(lǐng)域普通技術(shù)人員可以理解,圖3所示的結(jié)構(gòu)僅為示意,其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,計算機(jī)終端30還可包括比圖3中所示更多或者更少的組件,或者具有與圖3所示不同的配置。
存儲器304可用于存儲應(yīng)用軟件的軟件程序以及模塊,如本發(fā)明實(shí)施例中的目標(biāo)對象的信息的處理方法對應(yīng)的程序指令/模塊,處理器302通過運(yùn)行存儲在存儲器304內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的目標(biāo)對象的信息的處理方法。存儲器304可包括高速隨機(jī)存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實(shí)例中,存儲器304可進(jìn)一步包括相對于處理器302遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至計算機(jī)終端30。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
傳輸裝置306用于經(jīng)由一個網(wǎng)絡(luò)輸入或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實(shí)例可包括計算機(jī)終端30的通信供應(yīng)商提供的無線網(wǎng)絡(luò)。在一個實(shí)例中,傳輸裝置306包括一個網(wǎng)絡(luò)適配器(Network Interface Controller,NIC),其可通過基站與其他網(wǎng)絡(luò)設(shè)備相連從而可與互聯(lián)網(wǎng)進(jìn)行通訊。在一個實(shí)例中,傳輸裝置306可以為射頻(Radio Frequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
在上述運(yùn)行環(huán)境下,本發(fā)明提供了如圖4所示的目標(biāo)對象的信息的處理方法。圖4是根據(jù)本發(fā)明實(shí)施例的一種目標(biāo)對象的信息的處理方法的流程圖,如圖4所示,上述方法可以包括如下步驟:
步驟S402,獲取處于隊列的頭部的目標(biāo)對象的信息,其中,隊列用于存儲退出預(yù)設(shè)群組的多個目標(biāo)對象的信息,隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,目標(biāo)對象的信息至少包括:目標(biāo)對象退出預(yù)設(shè)群組的時間;
步驟S404,判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,其中,預(yù)設(shè)時長為允許目標(biāo)對象再次加入預(yù)設(shè)群組的等待時長;
步驟S406,如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。
可選的,上述隊列中的多個目標(biāo)對象的信息可以按照每個目標(biāo)對象退出預(yù)設(shè)群組的時間從小到大排序。
上述目標(biāo)對象可以是網(wǎng)絡(luò)游戲中的游戲玩家,上述預(yù)設(shè)群組可以是網(wǎng)絡(luò)游戲中的副本,上述預(yù)設(shè)時長可以是允許游戲玩家再次加入副本的懲罰時間,上述隊列可以是單調(diào)隊列,每個退出副本的游戲玩家的信息均被有序的保存在單調(diào)隊列當(dāng)中。由于游戲玩家退出副本是有先后順序的,而懲罰時間所有玩家都是一樣的,所以玩家懲罰時間到達(dá)的先后順序跟退出副本的是一致的,結(jié)束懲罰的時間是可以滿足單調(diào)性的。由于越早退出副本的游戲玩家,其懲罰時間越早到達(dá),為了保證越早退出副本的游戲玩家的信息能夠被游戲服務(wù)器越早處理,單調(diào)隊列中的游戲玩家的信息按照退出副本的時間從小到大進(jìn)行排序,即越早退出副本的游戲玩家越接近單調(diào)隊列的頭部。
此處需要說明的是,目標(biāo)對象退出預(yù)設(shè)群組的時間可以是時間點(diǎn)或時刻,即時間軸上的某一點(diǎn),而目標(biāo)對象退出預(yù)設(shè)群組的時長可以是時間段,即時間軸上兩點(diǎn)間的長度,與目標(biāo)對象退出預(yù)設(shè)群組的時間是不同的內(nèi)容。
在一種可選的方案中,游戲服務(wù)器在執(zhí)行當(dāng)前本次輪詢時,可以獲取單調(diào)隊列隊頭的游戲玩家的信息,并判斷該游戲玩家退出副本的時長是否達(dá)到預(yù)設(shè)時長,例如,可以判斷從該游戲玩家退出副本的時間開始計時,判斷計時時間是否達(dá)到懲罰時間,如果計時時間達(dá)到懲罰時間,則說明該游戲玩家退出副本的時長達(dá)到懲罰時間,即該游戲玩家懲罰時間到達(dá),將該游戲玩家的信息出列,即將該游戲玩家的信息從單調(diào)隊列中刪除,并繼續(xù)判斷隊頭的下一個游戲玩家退出副本的時長是否達(dá)到懲罰時間,如果下一個游戲玩家退出副本的時長未達(dá)到懲罰時間,或者單調(diào)隊列為空,即沒有懲罰時間未到的游戲玩家,由于隊列中游戲玩家是按照退出副本的時間從小到大進(jìn)行排序,可以保證隊列中的其他游戲玩家肯定懲罰時間還未到,則游戲服務(wù)器停止執(zhí)行本次輪詢。
在如圖5所示的應(yīng)用場景中,單調(diào)隊列中存儲了退出同一個副本的9個游戲玩家的信息,由于9個游戲玩家的信息具有單調(diào)性,因此可以確定9個游戲玩家退出該同一個副本的時間先后順序?yàn)椋河螒蛲婕?,游戲玩家2,游戲玩家3,游戲玩家4,游戲玩家5,游戲玩家6,游戲玩家7,游戲玩家8和游戲玩家9,游戲玩家1位于單調(diào)隊列的隊頭,游戲玩家9位于單調(diào)隊列的隊尾。游戲服務(wù)器在執(zhí)行當(dāng)前本次輪詢時,可以首先獲取游戲玩家1退出副本的時間,判斷游戲玩家1退出副本的時長是否到達(dá)懲罰時間,如果游戲玩家1退出副本的時長到達(dá)懲罰時間,則將游戲玩家1出隊,將游戲玩家1從單調(diào)隊列中刪除,進(jìn)一步判斷單調(diào)隊列下一個隊頭的游戲玩家2退出副本的時長是否到達(dá)懲罰時間,如果游戲玩家2退出副本的時長未到達(dá)懲罰時間,則游戲服務(wù)器停止執(zhí)行本次輪詢。
由上可知,本發(fā)明上述實(shí)施例一公開的方案中,獲取處于隊列的頭部的目標(biāo)對象的信息,判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。
容易注意到,由于隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,可以獲取處于隊列的頭部的目標(biāo)對象的信息,如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。因此,通過本發(fā)明實(shí)施例所提供的方案,可以通過使用單調(diào)隊列來妥善有序的組織目標(biāo)對象的信息,而不是胡亂的將目標(biāo)對象的信息集中在一起進(jìn)行輪詢,從而達(dá)到增加輪詢的效率,減輕服務(wù)器的計算負(fù)荷的效果。
由此,本發(fā)明提供的上述實(shí)施例一的方案解決了現(xiàn)有技術(shù)中通過遍歷輪詢的方式處理每個目標(biāo)對象的信息,復(fù)雜度較高,效率較低的技術(shù)問題。
可選的,根據(jù)本發(fā)明上述實(shí)施例,在步驟S402,獲取處于隊列的頭部的目標(biāo)對象的信息之前,上述方法還可以包括如下步驟:
步驟S412,如果檢測到第一目標(biāo)對象退出預(yù)設(shè)群組,獲取第一目標(biāo)對象退出預(yù)設(shè)群組的時間;
步驟S414,將第一目標(biāo)對象退出預(yù)設(shè)群組的時間依次與隊列中已經(jīng)保存的多個目標(biāo)對象退出預(yù)設(shè)群組的時間進(jìn)行比較;
步驟S416,如果第一目標(biāo)對象退出預(yù)設(shè)群組的時間大于等于隊列中每個目標(biāo)對象退出預(yù)設(shè)群組的時間,則將第一目標(biāo)對象的信息插入到隊列的尾部;
步驟S418,如果第一目標(biāo)對象退出預(yù)設(shè)群組的時間小于隊列中的第二目標(biāo)對象退出預(yù)設(shè)群組的時間,且大于隊列中的第三目標(biāo)對象退出預(yù)設(shè)群組的時間,則將第一目標(biāo)對象的信息插入到第二目標(biāo)對象和第三目標(biāo)對象之間。
上述第二目標(biāo)對象退出預(yù)設(shè)群組的時間可以大于第三目標(biāo)對象退出預(yù)設(shè)群組的時間,即第二目標(biāo)對象的信息在第三目標(biāo)對象的信息之后。
此處需要說明的是,第一個游戲玩家先退出副本之后,第二個游戲玩家退出副本,由于第一個游戲玩家的網(wǎng)絡(luò)延遲等原因,導(dǎo)致游戲服務(wù)器獲取到第一個游戲玩家退出副本的時間較晚,第二個游戲玩家的信息已經(jīng)保存在單調(diào)隊列中,為了保證第一個游戲玩家的信息可以在第二個游戲玩家的信息之前被游戲服務(wù)器輪詢處理,即第一個游戲玩家的信息排在第二個游戲玩家的信息之前,在任意一個游戲玩家退出副本之后,游戲服務(wù)器可以在將該游戲玩家存儲到單調(diào)隊列之前,將該游戲玩家退出副本的時間依次與隊列中已經(jīng)保存的多個游戲玩家退出副本的時間進(jìn)行比較,由于隊列中保存的多個游戲玩家退出副本的時間具有單調(diào)性,因此可以將該游戲玩家退出副本的時間從隊尾開始,依次與隊列中每個游戲玩家退出副本的時間進(jìn)行比較。
在一種可選的方案中,游戲玩家可以在游戲客戶端通過界面操作,向游戲服務(wù)器請求退出副本,當(dāng)任意一個游戲玩家從副本中退出之后,游戲服務(wù)器可以獲取到該游戲玩家退出副本的時間,將該游戲玩家退出副本的時間依次與隊列中已經(jīng)保存的多個游戲玩家退出副本的時間進(jìn)行比較,如果該游戲玩家退出副本的時間比隊尾的游戲玩家退出副本的時間要晚,即該游戲玩家退出副本的時間大于等于隊尾的游戲玩家退出副本的時間,則將該游戲玩家的信息插入到隊列尾部。如果該游戲玩家退出副本的時間比隊列中一個游戲玩家退出副本的時間要晚,比另一個游戲玩家退出副本的時間要早,即該游戲玩家退出副本的時間大于等于一個游戲玩家退出副本的時間,小于等于另一個游戲玩家退出副本的時間,則可以將該游戲玩家的信息插入到一個游戲玩家的信息和另一個游戲玩家之間的信息。
在如圖5所示的應(yīng)用場景中,當(dāng)游戲玩家9從副本中退出之后,游戲服務(wù)器可以獲取游戲玩家9退出副本的時間,將游戲玩家9退出副本的時間從單調(diào)隊列的隊尾開始,與游戲玩家8退出副本的時間進(jìn)行比較,如果游戲玩家9退出副本的時間大于等于游戲玩家8退出副本的時間,即游戲玩家9退出副本的時間比游戲玩家8退出副本的時間晚,則將游戲玩家9的信息插入到單調(diào)隊列尾部,將游戲玩家9的信息插入到游戲玩家8的信息之后。如果游戲玩家9退出副本的時間小于游戲玩家8退出副本的時間,則將游戲玩家9退出副本的時間與游戲玩家7退出副本的時間進(jìn)行比較,如果游戲玩家9退出副本的時間大于等于游戲玩家7退出副本的時間,即游戲玩家9退出副本的時間比游戲玩家7退出副本的時間晚,則將游戲玩家9的信息插入到游戲玩家7和游戲玩家8之間。
可選的,根據(jù)本發(fā)明上述實(shí)施例,步驟S404,判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長可以包括如下步驟:
步驟S40422,獲取當(dāng)前時間;
步驟S40424,計算目標(biāo)對象退出預(yù)設(shè)群組的時間和預(yù)設(shè)時長之和,得到時間和值;
步驟S40426,判斷當(dāng)前時間是否大于等于時間和值;其中,如果當(dāng)前時間大于等于時間和值,則目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長。
可選的,當(dāng)前時間可以是服務(wù)器的當(dāng)前時間,例如,服務(wù)器處理目標(biāo)對象時的時間。
在一種可選的方案中,判斷對頭的游戲玩家是否懲罰時間到達(dá)的判斷方法可以是判斷當(dāng)前時間是否大于該游戲玩家退出副本的時間加上懲罰時間,如果是,則說明該游戲玩家退出副本的時長到達(dá)懲罰時間,即該游戲玩家懲罰時間到達(dá),可以將該游戲玩家出列,即從單調(diào)隊列中刪除該游戲玩家的信息;如果否,則說明該游戲玩家退出副本的時長未到達(dá)懲罰時間,即該游戲玩家懲罰時間到未達(dá),游戲服務(wù)器可以結(jié)束本次輪詢。
在如圖5所示的應(yīng)用場景中,在判斷游戲玩家1退出副本的時長是否到達(dá)懲罰時間的時候,游戲服務(wù)器可以計算游戲玩家1退出副本的時間與懲罰時間之和,并將獲取到的當(dāng)前時間與該時間之和進(jìn)行比較,如果當(dāng)前時間大于等于該時間之和,則說明該游戲玩家1退出副本的時長到達(dá)懲罰時間,即游戲玩家1懲罰時間到達(dá),可以該游戲玩家1出列,即從單調(diào)隊列中刪除該游戲玩家1的信息。
可選的,根據(jù)本發(fā)明上述實(shí)施例,步驟S404,判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長可以包括如下步驟:
步驟S40442,獲取當(dāng)前時間;
步驟S40444,計算當(dāng)前時間與目標(biāo)對象退出預(yù)設(shè)群組的時間的差值,得到時長差值;
步驟S40446,判斷時長差值是否大于等于預(yù)設(shè)時長;其中,如果時長差值大于等于預(yù)設(shè)時長,則目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長。
在一種可選的方案中,判斷對頭的游戲玩家是否懲罰時間到達(dá)的判斷方法可以是判斷懲罰時間是否小于當(dāng)前時間減去該游戲玩家退出副本的時間,如果是,則說明該游戲玩家退出副本的時長到達(dá)懲罰時間,即該游戲玩家懲罰時間到達(dá),可以將該游戲玩家出列,即從單調(diào)隊列中刪除該游戲玩家的信息;如果否,則說明該游戲玩家退出副本的時長未到達(dá)懲罰時間,即該游戲玩家懲罰時間到未達(dá),游戲服務(wù)器可以結(jié)束本次輪詢。
在如圖5所示的應(yīng)用場景中,在判斷游戲玩家1退出副本的時長是否到達(dá)懲罰時間的時候,游戲服務(wù)器可以計算獲取到的當(dāng)前時間與游戲玩家1退出副本的時間之差,并將懲罰時間與該時間之差進(jìn)行比較,如果該時間之差大于等于懲罰時間,則說明該游戲玩家1退出副本的時長到達(dá)懲罰時間,即游戲玩家1懲罰時間到達(dá),可以該游戲玩家1出列,即從單調(diào)隊列中刪除該游戲玩家1的信息。
可選的,根據(jù)本發(fā)明上述實(shí)施例,上述目標(biāo)對象的信息還可以包括:目標(biāo)對象的標(biāo)識信息,其中,在步驟S406,從隊列中刪除目標(biāo)對象的信息的同時或之后,上述方法還可以包括如下步驟:
步驟S422,生成提示信息,其中,提示信息用于提示到達(dá)預(yù)設(shè)時長;
步驟S424,根據(jù)目標(biāo)對象的標(biāo)識信息,將提示信息發(fā)送給目標(biāo)對象。
上述目標(biāo)對象的標(biāo)識信息可以是目標(biāo)對象的ID或者目標(biāo)對象的賬號,本發(fā)明對此不做具體限定,其他可以唯一標(biāo)識該目標(biāo)對象的信息均可以實(shí)現(xiàn)上述實(shí)施例的目的。
在一種可選的方案中,當(dāng)任意一個游戲玩家從副本中退出之后,游戲服務(wù)器可以將游戲玩家的ID和游戲玩家退出副本的時間作為一整個結(jié)構(gòu)體插入到單調(diào)隊列當(dāng)中,游戲服務(wù)器在執(zhí)行當(dāng)前本次輪詢時,獲取單調(diào)隊列隊頭的游戲玩家退出副本的時間和的ID,并判斷該游戲玩家退出副本的時長是否達(dá)到預(yù)設(shè)時長,如果該游戲玩家退出副本的時長達(dá)到懲罰時間,則可以將該游戲玩家的信息出列,即將該游戲玩家的信息從單調(diào)隊列中刪除,并根據(jù)該游戲玩家的ID,將生成的提示信息發(fā)送給該游戲玩家,告知其懲罰時間到達(dá),可以再次進(jìn)入副本。
在如圖5所示的應(yīng)用場景中,單調(diào)隊列中存儲了退出同一個副本的9個游戲玩家的信息,分別為游戲玩家1退出副本的時間和ID0001,游戲玩家2退出副本的時間和ID0002,游戲玩家3退出副本的時間和ID0003,游戲玩家4退出副本的時間和ID0004,游戲玩家5退出副本的時間和ID0005,游戲玩家6退出副本的時間和ID0006,游戲玩家7退出副本的時間和ID0007,游戲玩家8退出副本的時間和ID0008,以及游戲玩家退出副本的時間和ID0009。游戲服務(wù)器在執(zhí)行當(dāng)前本次輪詢時,可以首先獲取游戲玩家1退出副本的時間和玩家1的ID,判斷游戲玩家1退出副本的時長是否到達(dá)懲罰時間,如果游戲玩家1退出副本的時長到達(dá)懲罰時間,則將游戲玩家1出隊,將游戲玩家1從單調(diào)隊列中刪除,并根據(jù)ID0001將提示信息發(fā)送給游戲玩家1,告知其懲罰時間到達(dá),可以再次進(jìn)入副本。
可選的,根據(jù)本發(fā)明上述實(shí)施例,在步驟S402,獲取處于隊列的頭部的目標(biāo)對象的信息之前,上述方法還可以包括如下步驟:
步驟S400,啟動定時器,定時器每隔預(yù)設(shè)時間輪詢隊列是否為空,如果隊列不為空,則執(zhí)行獲取處于隊列的頭部的目標(biāo)對象的信息的步驟。
為了保證服務(wù)器及時處理隊頭目標(biāo)對象的信息,上述預(yù)設(shè)時間可以是1s,即定時器每秒輪詢一次隊列是否為空。
在一種可選的方案中,游戲服務(wù)器可以啟動一個每秒鐘都會執(zhí)行一次的定時器,每秒鐘執(zhí)行的時候,游戲服務(wù)器可以首先輪詢單調(diào)隊列是否為空,即輪詢單調(diào)隊列中是否有被懲罰的游戲玩家,如果單調(diào)隊列為空,則游戲服務(wù)器停止,直接等待下一秒定時器的執(zhí)行。如果單調(diào)隊列不為空,則一直判斷單調(diào)隊列隊頭的游戲玩家退出副本的時長是否達(dá)到預(yù)設(shè)時長,如果該游戲玩家退出副本的時長達(dá)到懲罰時間,則將該游戲玩家的信息出列,即將該游戲玩家的信息從單調(diào)隊列中刪除,并繼續(xù)判斷隊頭的下一個游戲玩家退出副本的時長是否達(dá)到懲罰時間,如果下一個游戲玩家退出副本的時長未達(dá)到懲罰時間,或者單調(diào)隊列為空,即沒有懲罰時間未到的游戲玩家,由于隊列中游戲玩家是按照退出副本的時間從小到大進(jìn)行排序,可以保證隊列中的其他游戲玩家肯定懲罰時間還未到,則游戲服務(wù)器停止執(zhí)行本次輪詢,等待下一秒定時器的執(zhí)行。
下面結(jié)合圖6對本發(fā)明一種優(yōu)選的實(shí)施例進(jìn)行詳細(xì)說明。
如圖6所示,提供了一種可選的目標(biāo)對象的信息的處理方法,該方法可以包括如下步驟S61至步驟S65:
步驟S61,每秒的定時器時間到達(dá)。
可選的,游戲服務(wù)器可以啟動一個每秒鐘都會執(zhí)行一次的定時器,定時器每秒執(zhí)行一次。
步驟S62,判斷隊列是否為空。
可選的,上述隊列可以是單調(diào)隊列,當(dāng)定時器每秒執(zhí)行時,游戲服務(wù)器可以首先輪詢判斷單調(diào)隊列是否為空,如果為空,則進(jìn)入步驟S65;如果不為空,則進(jìn)入步驟S63。
步驟S63,判斷隊頭的游戲玩家是否懲罰時間到。
可選的,上述預(yù)設(shè)時長可以是允許游戲玩家再次加入副本的懲罰時間,游戲服務(wù)器在執(zhí)行當(dāng)前本次輪詢時,可以獲取單調(diào)隊列隊頭的游戲玩家退出副本的時間和ID,并判斷該游戲玩家是否懲罰時間到,即該游戲玩家退出副本的時長是否達(dá)到預(yù)設(shè)時長,如果是,則說明該游戲玩家退出副本的時長到達(dá)懲罰時間,進(jìn)入步驟S64;如果否,則說明該游戲玩家退出副本的時長未到達(dá)懲罰時間,進(jìn)入步驟S65。
步驟S64,通知該游戲玩家懲罰時間到并將該游戲玩家從隊列中刪除。
可選的,如果該游戲玩家懲罰時間到,即該游戲玩家退出副本的時長到達(dá)預(yù)設(shè)時長,則將該游戲玩家的信息出列,即將該游戲玩家的信息從單調(diào)隊列中刪除,并根據(jù)該游戲玩家的ID,將生成的提示信息發(fā)送給該游戲玩家,告知其懲罰時間到達(dá),可以再次進(jìn)入副本。在執(zhí)行完步驟S64之后,進(jìn)入步驟S62,繼續(xù)判斷隊頭的下一個游戲玩家退出副本的時長是否達(dá)到懲罰時間。
步驟S65,結(jié)束。
可選的,如果下一個游戲玩家退出副本的時長未達(dá)到懲罰時間,或者單調(diào)隊列為空,即沒有懲罰時間未到的游戲玩家,則游戲服務(wù)器停止執(zhí)行本次輪詢,等待下一秒定時器的執(zhí)行。
此處需要說明的是,單調(diào)隊列將數(shù)據(jù)插入隊尾和從隊頭移除數(shù)據(jù)的操作的時間復(fù)雜度都是一個常數(shù),由于每秒鐘執(zhí)行的時候,最多只會輪詢到懲罰時間到的玩家和一個未到的玩家,而懲罰時間到的玩家會出隊,下次不會再輪詢到,所以平攤下來每秒執(zhí)行的時間復(fù)雜度是跟n無關(guān)的常數(shù),相比通常的做法,大大減輕了服務(wù)器的計算負(fù)荷。
通過上述優(yōu)選的實(shí)施例,通過單調(diào)隊列,即具有單調(diào)性的先進(jìn)先出的隊列,建立單調(diào)隊列和建立普通隊列類似都是使用單向鏈表,只是加多了一個限制,就是元素在插入到這個隊列的尾部的時候要保證和該隊列里其他元素的單調(diào)性。通過使用單調(diào)隊列來妥善有序的組織被懲罰玩家的信息(玩家的id,退出副本的時間),而不是胡亂的將被懲罰玩家的信息集中在一起每秒鐘輪詢,能夠大大增加詢問的效率,大大減輕了服務(wù)器的計算負(fù)荷。降低每秒輪詢的復(fù)雜度,降低至跟被懲罰玩家的個數(shù)n無關(guān)的一個常數(shù),也就是在被懲罰的玩家很多的情況下,也能保證一個很高的效率。
需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述的方法。
實(shí)施例二
根據(jù)本發(fā)明實(shí)施例,還提供了一種目標(biāo)對象的信息的處理裝置的實(shí)施例。
圖7是根據(jù)本發(fā)明實(shí)施例的一種目標(biāo)對象的信息的處理裝置的示意圖,如圖7所示,該裝置包括:第一獲取模塊71,判斷模塊73和刪除模塊75。
其中,第一獲取模塊71用于獲取處于隊列的頭部的目標(biāo)對象的信息,其中,隊列用于存儲退出預(yù)設(shè)群組的多個目標(biāo)對象的信息,隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,目標(biāo)對象的信息至少包括:目標(biāo)對象退出預(yù)設(shè)群組的時間;判斷模塊73用于判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,其中,預(yù)設(shè)時長為允許目標(biāo)對象再次加入預(yù)設(shè)群組的等待時長;刪除模塊75用于如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。
可選的,上述隊列中的多個目標(biāo)對象的信息可以按照每個目標(biāo)對象退出預(yù)設(shè)群組的時間從小到大排序。
上述目標(biāo)對象可以是網(wǎng)絡(luò)游戲中的游戲玩家,上述預(yù)設(shè)群組可以是網(wǎng)絡(luò)游戲中的副本,上述預(yù)設(shè)時長可以是允許游戲玩家再次加入副本的懲罰時間,上述隊列可以是單調(diào)隊列,每個退出副本的游戲玩家的信息均被有序的保存在單調(diào)隊列當(dāng)中。由于游戲玩家退出副本是有先后順序的,而懲罰時間所有玩家都是一樣的,所以玩家懲罰時間到達(dá)的先后順序跟退出副本的是一致的,結(jié)束懲罰的時間是可以滿足單調(diào)性的。由于越早退出副本的游戲玩家,其懲罰時間越早到達(dá),為了保證越早退出副本的游戲玩家的信息能夠被游戲服務(wù)器越早處理,單調(diào)隊列中的游戲玩家的信息按照退出副本的時間從小到大進(jìn)行排序,即越早退出副本的游戲玩家越接近單調(diào)隊列的頭部。
此處需要說明的是,上述第一獲取模塊71,判斷模塊73和刪除模塊75對應(yīng)于實(shí)施例一中的步驟S402至步驟S406,三個模塊與對應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例二所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計算機(jī)終端30中。
由上可知,本發(fā)明上述實(shí)施例二公開的方案中,獲取處于隊列的頭部的目標(biāo)對象的信息,判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。
容易注意到,由于隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,可以獲取處于隊列的頭部的目標(biāo)對象的信息,如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。因此,通過本發(fā)明實(shí)施例所提供的方案,可以通過使用單調(diào)隊列來妥善有序的組織目標(biāo)對象的信息,而不是胡亂的將目標(biāo)對象的信息集中在一起進(jìn)行輪詢,從而達(dá)到增加輪詢的效率,減輕服務(wù)器的計算負(fù)荷的效果。
由此,本發(fā)明提供的上述實(shí)施例二的方案解決了現(xiàn)有技術(shù)中通過遍歷輪詢的方式處理每個目標(biāo)對象的信息,復(fù)雜度較高,效率較低的技術(shù)問題。
可選的,根據(jù)本發(fā)明上述實(shí)施例,如圖8所示,上述裝置還包括:第二獲取模塊81,比較模塊83,第一插入模塊85和第二插入模塊87。
其中,第二獲取模塊81用于如果檢測到第一目標(biāo)對象退出預(yù)設(shè)群組,獲取第一目標(biāo)對象退出預(yù)設(shè)群組的時間;比較模塊83用于將第一目標(biāo)對象退出預(yù)設(shè)群組的時間依次與隊列中已經(jīng)保存的多個目標(biāo)對象退出預(yù)設(shè)群組的時間進(jìn)行比較;第一插入模塊85用于如果第一目標(biāo)對象退出預(yù)設(shè)群組的時間大于等于隊列中每個目標(biāo)對象退出預(yù)設(shè)群組的時間,則將第一目標(biāo)對象的信息插入到隊列的尾部;第二插入模塊87用于如果第一目標(biāo)對象退出預(yù)設(shè)群組的時間小于隊列中的第二目標(biāo)對象退出預(yù)設(shè)群組的時間,且大于隊列中的第三目標(biāo)對象退出預(yù)設(shè)群組的時間,則將第一目標(biāo)對象的信息插入到第二目標(biāo)對象和第三目標(biāo)對象之間。
上述第二目標(biāo)對象退出預(yù)設(shè)群組的時間可以大于第三目標(biāo)對象退出預(yù)設(shè)群組的時間,即第二目標(biāo)對象的信息在第三目標(biāo)對象的信息之后。
此處需要說明的是,第一個游戲玩家先退出副本之后,第二個游戲玩家退出副本,由于第一個游戲玩家的網(wǎng)絡(luò)延遲等原因,導(dǎo)致游戲服務(wù)器獲取到第一個游戲玩家退出副本的時間較晚,第二個游戲玩家的信息已經(jīng)保存在單調(diào)隊列中,為了保證第一個游戲玩家的信息可以在第二個游戲玩家的信息之前被游戲服務(wù)器輪詢處理,即第一個游戲玩家的信息排在第二個游戲玩家的信息之前,在任意一個游戲玩家退出副本之后,游戲服務(wù)器可以在將該游戲玩家存儲到單調(diào)隊列之前,將該游戲玩家退出副本的時間依次與隊列中已經(jīng)保存的多個游戲玩家退出副本的時間進(jìn)行比較,由于隊列中保存的多個游戲玩家退出副本的時間具有單調(diào)性,因此可以將該游戲玩家退出副本的時間從隊尾開始,依次與隊列中每個游戲玩家退出副本的時間進(jìn)行比較。
此處還需要說明的是,上述第二獲取模塊81,比較模塊83,第一插入模塊85和第二插入模塊87對應(yīng)于實(shí)施例一中的步驟S412至步驟S418,四個模塊與對應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例二所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計算機(jī)終端30中。
可選的,根據(jù)本發(fā)明上述實(shí)施例,如圖9所示,判斷模塊73包括:第一獲取單元91,第一計算單元93和第一判斷單元95。
其中,第一獲取單元91用于獲取當(dāng)前時間;第一計算單元93用于計算目標(biāo)對象退出預(yù)設(shè)群組的時間和預(yù)設(shè)時長之和,得到時間和值;第一判斷單元95用于判斷當(dāng)前時間是否大于等于時間和值;其中,如果當(dāng)前時間大于等于時間和值,則目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長。
可選的,當(dāng)前時間可以是服務(wù)器的當(dāng)前時間,例如,服務(wù)器處理目標(biāo)對象時的時間。
此處還需要說明的是,上述第一獲取單元91,第一計算單元93和第一判斷單元95對應(yīng)于實(shí)施例一中的步驟S40422至步驟S40426,三個模塊與對應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例二所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計算機(jī)終端30中。
可選的,根據(jù)本發(fā)明上述實(shí)施例,如圖10所示,判斷模塊73包括:第二獲取單元101,第二計算單元103和第二判斷單元105。
其中,第二獲取單元101用于獲取當(dāng)前時間;第二計算單元103用于計算目標(biāo)對象退出預(yù)設(shè)群組的時間和預(yù)設(shè)時長之和,得到時間和值;第二判斷單元105用于判斷當(dāng)前時間是否大于等于時間和值;其中,如果當(dāng)前時間大于等于時間和值,則目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長。
此處還需要說明的是,上述第二獲取單元101,第二計算單元103和第二判斷單元105對應(yīng)于實(shí)施例一中的步驟S40442至步驟S40446,三個模塊與對應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例二所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計算機(jī)終端30中。
可選的,根據(jù)本發(fā)明上述實(shí)施例,如圖11所示,上述目標(biāo)對象的信息還可以包括:目標(biāo)對象的標(biāo)識信息,其中,上述裝置還包括:生成模塊111和發(fā)送模塊113。
其中,生成模塊111用于生成提示信息,其中,提示信息用于提示到達(dá)預(yù)設(shè)時長;發(fā)送模塊113用于根據(jù)目標(biāo)對象的標(biāo)識信息,將提示信息發(fā)送給目標(biāo)對象。
上述目標(biāo)對象的標(biāo)識信息可以是目標(biāo)對象的ID或者目標(biāo)對象的賬號,本發(fā)明對此不做具體限定,其他可以唯一標(biāo)識該目標(biāo)對象的信息均可以實(shí)現(xiàn)上述實(shí)施例的目的。
此處需要說明的是,上述生成模塊111和發(fā)送模塊113對應(yīng)于實(shí)施例一中的步驟S422至步驟S424,兩個模塊與對應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例二所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計算機(jī)終端30中。
可選的,根據(jù)本發(fā)明上述實(shí)施例,如圖12所示,上述裝置還包括:啟動模塊121。
其中,啟動模塊121用于啟動定時器,定時器每隔預(yù)設(shè)時間輪詢隊列是否為空,如果隊列不為空,則執(zhí)行上述第一獲取模塊71的功能。
為了保證服務(wù)器及時處理隊頭目標(biāo)對象的信息,上述預(yù)設(shè)時間可以是1s,即定時器每秒輪詢一次隊列是否為空。
此處需要說明的是,上述啟動模塊121對應(yīng)于實(shí)施例一中的步驟S400,該模塊與對應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例二所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計算機(jī)終端30中。
實(shí)施例三
本發(fā)明的實(shí)施例可以提供一種計算機(jī)終端,該計算機(jī)終端可以是計算機(jī)終端群中的任意一個計算機(jī)終端設(shè)備??蛇x地,在本實(shí)施例中,上述計算機(jī)終端也可以替換為通信設(shè)備等終端設(shè)備。
可選地,在本實(shí)施例中,上述計算機(jī)終端可以位于計算機(jī)網(wǎng)絡(luò)的多個網(wǎng)絡(luò)設(shè)備中的至少一個網(wǎng)絡(luò)設(shè)備。
在本實(shí)施例中,上述計算機(jī)終端可以執(zhí)行目標(biāo)對象的信息的處理方法中以下步驟的程序代碼:獲取處于隊列的頭部的目標(biāo)對象的信息,其中,隊列用于存儲退出預(yù)設(shè)群組的多個目標(biāo)對象的信息,隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,目標(biāo)對象的信息至少包括:目標(biāo)對象退出預(yù)設(shè)群組的時間;判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,其中,預(yù)設(shè)時長為允許目標(biāo)對象再次加入預(yù)設(shè)群組的等待時長;如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。
可選地,圖13是根據(jù)本發(fā)明實(shí)施例的一種計算機(jī)終端的結(jié)構(gòu)框圖。如圖13所示,該計算機(jī)終端A可以包括:一個或多個(圖中僅示出一個)處理器131、存儲器133、以及傳輸裝置135。
其中,存儲器可用于存儲軟件程序以及模塊,如本發(fā)明實(shí)施例中的目標(biāo)對象的信息的處理方法和裝置對應(yīng)的程序指令/模塊,處理器通過運(yùn)行存儲在存儲器內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的目標(biāo)對象的信息的處理方法。存儲器可包括高速隨機(jī)存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實(shí)例中,存儲器可進(jìn)一步包括相對于處理器遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至終端A。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
處理器可以通過傳輸裝置調(diào)用存儲器存儲的信息及應(yīng)用程序,以執(zhí)行下述步驟:獲取處于隊列的頭部的目標(biāo)對象的信息,其中,隊列用于存儲退出預(yù)設(shè)群組的多個目標(biāo)對象的信息,隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,目標(biāo)對象的信息至少包括:目標(biāo)對象退出預(yù)設(shè)群組的時間;判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,其中,預(yù)設(shè)時長為允許目標(biāo)對象再次加入預(yù)設(shè)群組的等待時長;如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:隊列中的多個目標(biāo)對象的信息按照每個目標(biāo)對象退出預(yù)設(shè)群組的時間從小到大排序。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:在獲取處于隊列的頭部的目標(biāo)對象的信息之前,如果檢測到第一目標(biāo)對象退出預(yù)設(shè)群組,獲取第一目標(biāo)對象退出預(yù)設(shè)群組的時間;將第一目標(biāo)對象退出預(yù)設(shè)群組的時間依次與隊列中已經(jīng)保存的多個目標(biāo)對象退出預(yù)設(shè)群組的時間進(jìn)行比較;如果第一目標(biāo)對象退出預(yù)設(shè)群組的時間大于等于隊列中每個目標(biāo)對象退出預(yù)設(shè)群組的時間,則將第一目標(biāo)對象的信息插入到隊列的尾部;如果第一目標(biāo)對象退出預(yù)設(shè)群組的時間小于隊列中的第二目標(biāo)對象退出預(yù)設(shè)群組的時間,且大于隊列中的第三目標(biāo)對象退出預(yù)設(shè)群組的時間,則將第一目標(biāo)對象的信息插入到第二目標(biāo)對象的信息和第三目標(biāo)對象的信息之間。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:獲取當(dāng)前時間;計算目標(biāo)對象退出預(yù)設(shè)群組的時間和預(yù)設(shè)時長之和,得到時間和值;判斷當(dāng)前時間是否大于等于時間和值;其中,如果當(dāng)前時間大于等于時間和值,則目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:獲取當(dāng)前時間;計算當(dāng)前時間與目標(biāo)對象退出預(yù)設(shè)群組的時間的差值,得到時長差值;判斷時長差值是否大于等于預(yù)設(shè)時長;其中,如果時長差值大于等于預(yù)設(shè)時長,則目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:目標(biāo)對象的信息還包括:目標(biāo)對象的標(biāo)識信息,在從隊列中刪除目標(biāo)對象的信息的同時或之后,生成提示信息,其中,提示信息用于提示到達(dá)預(yù)設(shè)時長;根據(jù)目標(biāo)對象的標(biāo)識信息,將提示信息發(fā)送給目標(biāo)對象。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:獲取處于隊列的頭部的目標(biāo)對象的信息之前,啟動定時器,定時器每隔預(yù)設(shè)時間輪詢隊列是否為空,如果隊列不為空,則執(zhí)行獲取處于隊列的頭部的目標(biāo)對象的信息的步驟。
采用本發(fā)明實(shí)施例,獲取處于隊列的頭部的目標(biāo)對象的信息,判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。
容易注意到,由于隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,可以獲取處于隊列的頭部的目標(biāo)對象的信息,如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。因此,通過本發(fā)明實(shí)施例所提供的方案,可以通過使用單調(diào)隊列來妥善有序的組織目標(biāo)對象的信息,而不是胡亂的將目標(biāo)對象的信息集中在一起進(jìn)行輪詢,從而達(dá)到增加輪詢的效率,減輕服務(wù)器的計算負(fù)荷的效果。
由此,本發(fā)明提供的上述實(shí)施例一的方案解決了現(xiàn)有技術(shù)中通過遍歷輪詢的方式處理每個目標(biāo)對象的信息,復(fù)雜度較高,效率較低的技術(shù)問題。
本領(lǐng)域普通技術(shù)人員可以理解,圖13所示的結(jié)構(gòu)僅為示意,計算機(jī)終端也可以是智能手機(jī)(如Android手機(jī)、iOS手機(jī)等)、平板電腦、掌聲電腦以及移動互聯(lián)網(wǎng)設(shè)備(Mobile Internet Devices,MID)、PAD等終端設(shè)備。圖13其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,計算機(jī)終端A還可包括比圖13中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖13所示不同的配置。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:閃存盤、只讀存儲器(Read-Only Memory,ROM)、隨機(jī)存取器(Random Access Memory,RAM)、磁盤或光盤等。
實(shí)施例四
本發(fā)明的實(shí)施例還提供了一種存儲介質(zhì)??蛇x地,在本實(shí)施例中,上述存儲介質(zhì)可以用于保存上述實(shí)施例二所提供的來去電界面的內(nèi)容顯示方法所執(zhí)行的程序代碼。
可選地,在本實(shí)施例中,上述存儲介質(zhì)可以位于計算機(jī)網(wǎng)絡(luò)中計算機(jī)終端群中的任意一個計算機(jī)終端中,或者位于通信設(shè)備群中的任意一個通信設(shè)備中。
可選地,在本實(shí)施例中,存儲介質(zhì)被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:獲取處于隊列的頭部的目標(biāo)對象的信息,其中,隊列用于存儲退出預(yù)設(shè)群組的多個目標(biāo)對象的信息,隊列中的多個目標(biāo)對象的信息按照單調(diào)順序排序,目標(biāo)對象的信息至少包括:目標(biāo)對象退出預(yù)設(shè)群組的時間;判斷目標(biāo)對象退出預(yù)設(shè)群組的時長是否到達(dá)預(yù)設(shè)時長,其中,預(yù)設(shè)時長為允許目標(biāo)對象再次加入預(yù)設(shè)群組的等待時長;如果目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長,則從隊列中刪除目標(biāo)對象的信息。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:隊列中的多個目標(biāo)對象的信息按照每個目標(biāo)對象退出預(yù)設(shè)群組的時間從小到大排序。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:在獲取處于隊列的頭部的目標(biāo)對象的信息之前,如果檢測到第一目標(biāo)對象退出預(yù)設(shè)群組,獲取第一目標(biāo)對象退出預(yù)設(shè)群組的時間;將第一目標(biāo)對象退出預(yù)設(shè)群組的時間依次與隊列中已經(jīng)保存的多個目標(biāo)對象退出預(yù)設(shè)群組的時間進(jìn)行比較;如果第一目標(biāo)對象退出預(yù)設(shè)群組的時間大于等于隊列中每個目標(biāo)對象退出預(yù)設(shè)群組的時間,則將第一目標(biāo)對象的信息插入到隊列的尾部;如果第一目標(biāo)對象退出預(yù)設(shè)群組的時間小于隊列中的第二目標(biāo)對象退出預(yù)設(shè)群組的時間,且大于隊列中的第三目標(biāo)對象退出預(yù)設(shè)群組的時間,則將第一目標(biāo)對象的信息插入到第二目標(biāo)對象的信息和第三目標(biāo)對象的信息之間。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:獲取當(dāng)前時間;計算目標(biāo)對象退出預(yù)設(shè)群組的時間和預(yù)設(shè)時長之和,得到時間和值;判斷當(dāng)前時間是否大于等于時間和值;其中,如果當(dāng)前時間大于等于時間和值,則目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:獲取當(dāng)前時間;計算當(dāng)前時間與目標(biāo)對象退出預(yù)設(shè)群組的時間的差值,得到時長差值;判斷時長差值是否大于等于預(yù)設(shè)時長;其中,如果時長差值大于等于預(yù)設(shè)時長,則目標(biāo)對象退出預(yù)設(shè)群組的時長到達(dá)預(yù)設(shè)時長。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:目標(biāo)對象的信息還包括:目標(biāo)對象的標(biāo)識信息,在從隊列中刪除目標(biāo)對象的信息的同時或之后,生成提示信息,其中,提示信息用于提示到達(dá)預(yù)設(shè)時長;根據(jù)目標(biāo)對象的標(biāo)識信息,將提示信息發(fā)送給目標(biāo)對象。
可選地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:獲取處于隊列的頭部的目標(biāo)對象的信息之前,啟動定時器,定時器每隔預(yù)設(shè)時間輪詢隊列是否為空,如果隊列不為空,則執(zhí)行獲取處于隊列的頭部的目標(biāo)對象的信息的步驟。
上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本發(fā)明的上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本發(fā)明所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可為個人計算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。