国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      信息推送方法及裝置、通訊系統(tǒng)與流程

      文檔序號(hào):11590366閱讀:170來源:國知局
      信息推送方法及裝置、通訊系統(tǒng)與流程

      本申請(qǐng)涉及通訊技術(shù)領(lǐng)域,尤其涉及一種信息推送方法及裝置、通訊系統(tǒng)。



      背景技術(shù):

      在一些包括客戶端設(shè)備和服務(wù)器的通訊系統(tǒng)中,需要通過一個(gè)或多個(gè)連接管理(connectionmanager,cm)設(shè)備來維持與客戶端設(shè)備的長連接。

      目前,當(dāng)客戶端設(shè)備與連接管理設(shè)備之間建立連接后,需要將所述客戶端設(shè)備的登錄信息寫入到數(shù)據(jù)緩存層中,所述登錄信息一般包括:與客戶端設(shè)備建立連接的連接管理設(shè)備的標(biāo)識(shí)。這樣,當(dāng)服務(wù)器需要向某個(gè)目標(biāo)客戶端設(shè)備推送消息時(shí),服務(wù)器可以從所述數(shù)據(jù)緩存層中,查找到與上述目標(biāo)客戶端設(shè)備建立連接的連接管理設(shè)備的標(biāo)識(shí),并將所需推送的消息推送至指定的連接管理設(shè)備,再由該連接管理設(shè)備轉(zhuǎn)發(fā)到所述目標(biāo)客戶端設(shè)備上。

      在上述過程中,連接管理設(shè)備難免需要進(jìn)行重啟,而當(dāng)某一連接管理設(shè)備發(fā)生重啟之后,可能會(huì)造成服務(wù)器向某一連接管理設(shè)備投遞消息失敗的問題,造成不必要的資源消耗。舉例而言,假設(shè)客戶端設(shè)備a與正常工作的連接管理設(shè)備a建立連接之后,需要在數(shù)據(jù)緩存層中存儲(chǔ)與所述客戶端設(shè)備a對(duì)應(yīng)的登錄信息是:客戶端設(shè)備a與連接管理設(shè)備a建立連接;此后,若上述連接管理設(shè)備a發(fā)生一次重啟,假如重啟之后上述數(shù)據(jù)緩存層中存儲(chǔ)的登錄信息仍是:客戶端設(shè)備a與連接管理設(shè)備a建立連接,那么,服務(wù)器在查找到這一登錄信息之后,便仍會(huì)向連接管理設(shè)備a投遞消息。然而,往往在上述連接管理設(shè)備a重啟之后,客戶端設(shè)備a并沒有與連接管理設(shè)備a建立連接,從而造成消息投遞失敗。



      技術(shù)實(shí)現(xiàn)要素:

      有鑒于此,本申請(qǐng)?zhí)峁┮环N信息推送方法及裝置、通訊系統(tǒng),以避免在連接管理設(shè)備發(fā)生重啟之后,服務(wù)器向連接管理設(shè)備投遞消息失敗的問題。

      為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┘夹g(shù)方案如下:

      根據(jù)本申請(qǐng)的第一方面,提出了一種信息推送方法,包括:

      查找目標(biāo)客戶端設(shè)備的登錄信息,所述登錄信息包括:與所述目標(biāo)客戶端設(shè)備建立連接的連接管理設(shè)備的標(biāo)識(shí),及所述連接管理設(shè)備的第一時(shí)間戳;其中所述第一時(shí)間戳用以標(biāo)識(shí)在所述目標(biāo)客戶端設(shè)備與所述連接管理設(shè)備建立連接的時(shí)刻之前所述連接管理設(shè)備最近一次啟動(dòng)的時(shí)刻;

      根據(jù)所述標(biāo)識(shí),獲取服務(wù)器記錄的與所述標(biāo)識(shí)對(duì)應(yīng)的第二時(shí)間戳;其中所述第二時(shí)間戳用以標(biāo)識(shí)所述服務(wù)器最近一次監(jiān)聽到所述連接管理設(shè)備啟動(dòng)的時(shí)刻;

      當(dāng)所述第一時(shí)間戳和所述第二時(shí)間戳不一致時(shí),拒絕向所述連接管理設(shè)備推送用于發(fā)送至所述目標(biāo)客戶端設(shè)備上的待推送信息。

      根據(jù)本申請(qǐng)的第二方面,提出了一種信息推送裝置,包括:

      查找單元,用于查找目標(biāo)客戶端設(shè)備的登錄信息,所述登錄信息包括:與所述目標(biāo)客戶端設(shè)備建立連接的連接管理設(shè)備的標(biāo)識(shí),及所述連接管理設(shè)備的第一時(shí)間戳;其中所述第一時(shí)間戳用以標(biāo)識(shí)在所述目標(biāo)客戶端設(shè)備與所述連接管理設(shè)備建立連接的時(shí)刻之前所述連接管理設(shè)備最近一次啟動(dòng)的時(shí)刻;

      獲取單元,用于根據(jù)所述標(biāo)識(shí),獲取服務(wù)器記錄的與所述標(biāo)識(shí)對(duì)應(yīng)的第二時(shí)間戳;其中所述第二時(shí)間戳用以標(biāo)識(shí)所述服務(wù)器最近一次監(jiān)聽到所述連接管理設(shè)備啟動(dòng)的時(shí)刻;

      拒絕推送單元,用于當(dāng)所述第一時(shí)間戳和所述第二時(shí)間戳不一致時(shí),拒絕向所述連接管理設(shè)備推送用于發(fā)送至所述目標(biāo)客戶端設(shè)備上的待推送信息。

      根據(jù)本申請(qǐng)的第三方面,提出了一種通訊系統(tǒng),包括:服務(wù)器、數(shù)據(jù)緩存層及與所述服務(wù)器通訊的若干連接管理設(shè)備,其中所述服務(wù)器用于:

      從數(shù)據(jù)緩存層查找目標(biāo)客戶端設(shè)備的登錄信息,所述登錄信息包括:與所述目標(biāo)客戶端設(shè)備建立連接的連接管理設(shè)備的標(biāo)識(shí),及所述連接管理設(shè)備的第一時(shí)間戳;其中所述第一時(shí)間戳用以標(biāo)識(shí)在所述目標(biāo)客戶端設(shè)備與所述連接管理設(shè)備建立連接的時(shí)刻之前所述連接管理設(shè)備最近一次啟動(dòng)的時(shí)刻;

      根據(jù)所述標(biāo)識(shí),獲取服務(wù)器記錄的與所述標(biāo)識(shí)對(duì)應(yīng)的第二時(shí)間戳;其中所述第二時(shí)間戳用以標(biāo)識(shí)所述服務(wù)器最近一次監(jiān)聽到所述連接管理設(shè)備啟動(dòng)的時(shí)刻;

      當(dāng)所述第一時(shí)間戳和所述第二時(shí)間戳不一致時(shí),拒絕向所述連接管理設(shè)備推送用于發(fā)送至所述目標(biāo)客戶端設(shè)備上的待推送信息。

      由以上技術(shù)方案可見,本申請(qǐng)通過在數(shù)據(jù)緩存層存儲(chǔ)目標(biāo)客戶端設(shè)備的登錄信息以及在服務(wù)器上記錄與所述連接管理設(shè)備對(duì)應(yīng)的第二時(shí)間戳,所述登錄信息包含與所述目標(biāo)客戶端設(shè)備建立連接的所述連接管理設(shè)備的第一時(shí)間戳。其中,由于本申請(qǐng)?jiān)谶M(jìn)行將消息投遞到連接管理設(shè)備之前,需要判斷上述第一時(shí)間戳和第二時(shí)間戳是否一致,并在所述第一時(shí)間戳和所述第二時(shí)間戳不一致時(shí),拒絕向所述連接管理設(shè)備推送相應(yīng)的待推送信息,從而避免在連接管理設(shè)備發(fā)生重啟之后,服務(wù)器錯(cuò)誤地向連接管理設(shè)備投遞消息,造成消息投遞失敗的問題,降低了不必要的資源消耗。

      附圖說明

      圖1是相關(guān)技術(shù)中的一種通訊系統(tǒng)的架構(gòu)示意圖;

      圖2是本申請(qǐng)一實(shí)施例中的一種信息推送方法的流程圖;

      圖3、圖4示出了本申請(qǐng)一實(shí)施例中針對(duì)連接管理設(shè)備的啟動(dòng)時(shí)刻進(jìn)行記錄和變更的過程;

      圖5是本申請(qǐng)一示例性實(shí)施例的一種電子設(shè)備的結(jié)構(gòu)示意圖;

      圖6是本申請(qǐng)一示例性實(shí)施例的一種信息推送裝置的框圖。

      具體實(shí)施方式

      圖1是相關(guān)技術(shù)中的一種c/s架構(gòu)的通訊系統(tǒng)的示意圖。該通訊系統(tǒng)可以包括:服務(wù)器10、若干客戶端設(shè)備30、若干連接管理設(shè)備(或稱“前端機(jī)器”、“cm設(shè)備”、“前端處理機(jī)”)20以及數(shù)據(jù)緩存層40。其中,所述服務(wù)器10可以是負(fù)責(zé)各類業(yè)務(wù)運(yùn)營的服務(wù)器,如:支付平臺(tái)服務(wù)器、即時(shí)通訊平臺(tái)服務(wù)器等。為便于描述,本文將上述通訊系統(tǒng)中的各個(gè)連接管理設(shè)備組成的集群稱為“cm集群”。在上述通訊系統(tǒng)中,各個(gè)客戶端設(shè)備30與服務(wù)器10之間的通訊過程是由cm集群負(fù)責(zé)維持,這樣,服務(wù)器10就不會(huì)不斷地被客戶端設(shè)備30打擾,從而釋放服務(wù)器10的處理資源,提升系統(tǒng)性能。在上述系統(tǒng),cm集群中所包含的連接管理設(shè)備的數(shù)量,每一連接管理設(shè)備可維持的客戶端設(shè)備的數(shù)量均可根據(jù)系統(tǒng)實(shí)際需求來調(diào)整。上述數(shù)據(jù)緩存層40用于存儲(chǔ)每一客戶端設(shè)備登錄某一連接管理設(shè)備之后生成的登錄信息,即,“cm集群”的所有連接管理設(shè)備上的登錄信息均可以存儲(chǔ)在該數(shù)據(jù)緩存層40中。數(shù)據(jù)緩存層40可用于通過在內(nèi)存中緩存數(shù)據(jù)來減少讀取數(shù)據(jù)庫的次數(shù),從而提高系統(tǒng)性能,該數(shù)據(jù)緩存層40可以是系統(tǒng)單獨(dú)開辟的一塊存儲(chǔ)空間,也可以是集成于某一服務(wù)器或子系統(tǒng)中的內(nèi)存空間,本申請(qǐng)不作限制。需說明的是,上述數(shù)據(jù)緩存層40中的數(shù)據(jù)可以按照預(yù)定的自動(dòng)超時(shí)時(shí)長進(jìn)行更新,即每一筆數(shù)據(jù)存在于上述數(shù)據(jù)緩存層40的持續(xù)時(shí)長通常不超過上述自動(dòng)超時(shí)時(shí)長,該自動(dòng)超時(shí)時(shí)長可以按照系統(tǒng)實(shí)際需求進(jìn)行設(shè)定。

      在運(yùn)行過程中,當(dāng)某一客戶端設(shè)備需要與服務(wù)器之間進(jìn)行交互時(shí),該客戶端設(shè)備可先登錄某一連接管理設(shè)備(可根據(jù)每一連接管理設(shè)備的實(shí)際負(fù)載情況來選取),以與某一連接管理設(shè)備建立連接。當(dāng)客戶端設(shè)備成功與某一連接管理設(shè)備建立連接之后,該連接管理設(shè)備需要生成當(dāng)前客戶端設(shè)備的登錄信息并存儲(chǔ)到數(shù)據(jù)緩存層40中,以便于服務(wù)器10后續(xù)需要向客戶端設(shè)備推送消息時(shí),可以通過從上述數(shù)據(jù)緩存層40中查找相應(yīng)的登錄信息,來找到與該客戶端設(shè)備建立連接的指定連接管理設(shè)備,并通過該指定連接管理設(shè)備進(jìn)行消息投遞。在一種示例中,登錄信息可包括:客戶端設(shè)備id(如:客戶端設(shè)備上登錄的用戶賬號(hào))及與客戶端設(shè)備建立連接的連接管理設(shè)備的標(biāo)識(shí)(如:“001”),例如,{客戶端設(shè)備a登錄連接管理設(shè)備a}。

      在相關(guān)技術(shù)中,“cm集群”中的連接管理設(shè)備難免因各種因素(如:機(jī)器故障、宕機(jī)、應(yīng)用更新等)需要重啟,當(dāng)某一連接管理設(shè)備發(fā)生重啟之后,容易導(dǎo)致服務(wù)器10從數(shù)據(jù)緩存層40查找到的登錄信息是不正確的,進(jìn)而導(dǎo)致服務(wù)器10按照查找的錯(cuò)誤登錄信息,向指定的連接管理設(shè)備投遞消息失敗的問題,帶來不必要的資源浪費(fèi),給系統(tǒng)性能造成不良影響。舉例而言,假設(shè)某一連接管理設(shè)備a在t1時(shí)刻啟動(dòng),并維持正常工作狀態(tài)至t2時(shí)刻發(fā)生宕機(jī),此后在t3時(shí)刻再一次啟動(dòng)并恢復(fù)正常工作狀態(tài)。在上述過程中,假設(shè)某一客戶端設(shè)備a在t1時(shí)刻~t2時(shí)刻之間的某個(gè)時(shí)間點(diǎn)登錄該連接管理設(shè)備a并與其建立連接,則在數(shù)據(jù)緩存層40中針對(duì)該客戶端設(shè)備a的登錄信息可例如是:{客戶端設(shè)備a登錄連接管理設(shè)備a}。基于上述例子,可能會(huì)出現(xiàn)如下情況:

      ①服務(wù)器10在t3時(shí)刻之后的某個(gè)時(shí)間點(diǎn)需要向客戶端設(shè)備a推送一則消息,此時(shí)服務(wù)器10從數(shù)據(jù)緩存層查找到的針對(duì)客戶端設(shè)備a的登錄信息如果是:{客戶端設(shè)備a登錄連接管理設(shè)備a}。然而,實(shí)際上,由于連接管理設(shè)備a在t2時(shí)刻發(fā)生宕機(jī)并在t3時(shí)刻重啟,在此過程之后,客戶端設(shè)備a可能已不再與連接管理設(shè)備a建立連接(或通過連接管理設(shè)備a進(jìn)行登錄),例如:客戶端設(shè)備a已經(jīng)下線、或客戶端設(shè)備a與cm集群中的另一連接管理設(shè)備b建立連接但還沒有對(duì)登錄信息進(jìn)行更新,等等。針對(duì)這一情況,若服務(wù)器10仍然按照上述登錄信息如果是:{客戶端設(shè)備a登錄連接管理設(shè)備a},向連接管理設(shè)備a投遞用于轉(zhuǎn)發(fā)到客戶端設(shè)備a上的消息,則勢(shì)必造成消息投遞失敗。

      ②服務(wù)器10在t2和t3時(shí)刻之間的某個(gè)時(shí)間點(diǎn)需要向客戶端設(shè)備a推送一則消息,此時(shí)服務(wù)器10從數(shù)據(jù)緩存層查找到的針對(duì)客戶端設(shè)備a的登錄信息如果是:{客戶端設(shè)備a登錄連接管理設(shè)備a}。然而,實(shí)際上,由于連接管理設(shè)備a在t2時(shí)刻發(fā)生宕機(jī),導(dǎo)致在t2到t3時(shí)刻之間無法正常工作,所以即便服務(wù)器10向連接管理設(shè)備a投遞用于轉(zhuǎn)發(fā)到客戶端設(shè)備a上的消息,也會(huì)造成消息投遞失敗。

      對(duì)于上述兩種情況,由于連接管理設(shè)備的重啟,均會(huì)造成服務(wù)器10向被重啟的連接管理設(shè)備投遞消息的失敗,造成不必要的資源消耗,本申請(qǐng)技術(shù)方案正是為解決上述問題而提出。

      圖2是本申請(qǐng)一實(shí)施例中的一種信息推送方法的流程圖,圖3、圖4示出了本申請(qǐng)一實(shí)施例中針對(duì)連接管理設(shè)備的啟動(dòng)時(shí)刻進(jìn)行記錄和變更的過程,以下將結(jié)合圖2~圖4來對(duì)本方案進(jìn)行敘述。參圖2所示,該信息推送方法可以應(yīng)用于上述服務(wù)器10,包括下述步驟101~103,其中:

      在步驟101中,查找目標(biāo)客戶端設(shè)備的登錄信息,其中所述登錄信息包括:與所述目標(biāo)客戶端設(shè)備建立連接的連接管理設(shè)備的標(biāo)識(shí),及所述連接管理設(shè)備的第一時(shí)間戳;其中所述第一時(shí)間戳用以標(biāo)識(shí)在所述目標(biāo)客戶端設(shè)備與所述連接管理設(shè)備建立連接的時(shí)刻之前,所述連接管理設(shè)備最近一次啟動(dòng)的時(shí)刻。

      在一實(shí)施例中,為便于描述,假定目標(biāo)客戶端設(shè)備的標(biāo)識(shí)為a,與該客戶端設(shè)備a建立連接的連接管理設(shè)備的標(biāo)識(shí)為cm-a。在客戶端設(shè)備a與連接管理設(shè)備cm-a建立連接之后,需要在數(shù)據(jù)緩存層中存儲(chǔ)客戶端設(shè)備a的登錄信息,例如是:

      {在cm-a上登錄,cm-a的啟動(dòng)時(shí)刻是t1};

      其中,假定客戶端設(shè)備a與連接管理設(shè)備cm-a建立連接的時(shí)刻是t0,則t1是在t0時(shí)刻之前的所述連接管理設(shè)備最近一次啟動(dòng)的時(shí)刻。連接管理設(shè)備在每次啟動(dòng)之后,可以記錄自身每一次啟動(dòng)的時(shí)刻,這樣,在有客戶端設(shè)備a與之建立連接之后,便可獲得相應(yīng)最近一次啟動(dòng)的時(shí)刻并生成與該時(shí)刻對(duì)應(yīng)的第一時(shí)間戳,再存儲(chǔ)到數(shù)據(jù)緩存層中。此后,當(dāng)服務(wù)器需要向客戶端設(shè)備a推送消息時(shí),則可以基于數(shù)據(jù)緩存層中存儲(chǔ)的數(shù)據(jù),從數(shù)據(jù)緩存層中查找目標(biāo)客戶端設(shè)備的登錄信息,并進(jìn)行消息投遞過程。需說明的是,在其他可行實(shí)施例中,登錄信息并不限于存儲(chǔ)到上述數(shù)據(jù)緩存層中,也可以被存儲(chǔ)到其他存儲(chǔ)空間中。

      在步驟102中,根據(jù)所述標(biāo)識(shí),獲取服務(wù)器記錄的與所述標(biāo)識(shí)對(duì)應(yīng)的第二時(shí)間戳;其中所述第二時(shí)間戳用以標(biāo)識(shí)所述服務(wù)器最近一次監(jiān)聽到所述連接管理設(shè)備啟動(dòng)的時(shí)刻。

      本實(shí)施例中,除了需要在數(shù)據(jù)緩存層中存儲(chǔ)包含第一時(shí)間戳(用以標(biāo)識(shí)cm設(shè)備的啟動(dòng)時(shí)刻)的登錄信息之外,還需要服務(wù)器通過監(jiān)聽“cm集群”中的每一個(gè)連接管理設(shè)備的工作狀態(tài)(如:啟動(dòng)、宕機(jī)、故障、重啟等),來記錄每一連接管理設(shè)備的第二時(shí)間戳,其中所述第二時(shí)間戳用以標(biāo)識(shí)所述服務(wù)器最近一次監(jiān)聽到所述連接管理設(shè)備啟動(dòng)的時(shí)刻。

      配合參照?qǐng)D3-圖4,以某一連接管理設(shè)備cm-a發(fā)生宕機(jī)并重啟的場(chǎng)景為例來說明。其中圖3所示的是連接管理設(shè)備cm-a發(fā)生宕機(jī)之前的信息存儲(chǔ)情況,圖4所示的是連接管理設(shè)備cm-a發(fā)生宕機(jī)并重啟之后的信息存儲(chǔ)情況。假定連接管理設(shè)備cm-a在t1時(shí)刻啟動(dòng)一次,并維持正常工作至t2時(shí)刻發(fā)生宕機(jī),此后在t3時(shí)刻恢復(fù)啟動(dòng)狀態(tài)。如圖3所示,假定在t1時(shí)刻和t2時(shí)刻之間的某個(gè)時(shí)間點(diǎn),客戶端設(shè)備a與連接管理設(shè)備cm-a建立連接,則需要在數(shù)據(jù)緩存層內(nèi)存儲(chǔ)客戶端設(shè)備a的登錄信息:{在連接管理設(shè)備cm-a上登錄,cm-a的啟動(dòng)時(shí)刻是t1},于此同時(shí),由于服務(wù)器監(jiān)聽到連接管理設(shè)備cm-a在t1時(shí)刻啟動(dòng)一次,且在建立連接完成的當(dāng)前時(shí)刻,本次啟動(dòng)是服務(wù)器最近一次監(jiān)聽到cm-a的啟動(dòng)時(shí)刻,則服務(wù)器需記錄:{cm-a的啟動(dòng)時(shí)刻為t1}。如圖4所示,當(dāng)服務(wù)器監(jiān)聽到cm-a在t2時(shí)刻發(fā)生宕機(jī)之后,可以將原本記錄的信息:{cm-a的啟動(dòng)時(shí)刻為t1}進(jìn)行刪除,并在服務(wù)器監(jiān)聽到cm-a在t3時(shí)刻重啟之后,可以記錄:{cm-a的啟動(dòng)時(shí)刻為t3}??梢?,服務(wù)器通過不斷監(jiān)聽每一連接管理設(shè)備的狀態(tài),將最近一次監(jiān)聽到的連接管理設(shè)備的啟動(dòng)時(shí)刻確定為第二時(shí)間戳,并進(jìn)行記錄。

      在一實(shí)施例中,當(dāng)所述連接管理設(shè)備重啟時(shí),重啟的連接管理設(shè)備需要在服務(wù)器上進(jìn)行重新注冊(cè),即服務(wù)器可以接收到所述連接管理設(shè)備發(fā)送的包含所述第二時(shí)間戳的注冊(cè)指令。其中所述第二時(shí)間戳是根據(jù)所述連接管理設(shè)備重啟的時(shí)刻確定的。當(dāng)所述連接管理設(shè)備注冊(cè)成功后,將所述第二時(shí)間戳與所述標(biāo)識(shí)(如:cm-a)對(duì)應(yīng)并記錄。當(dāng)然,服務(wù)器也可以通過監(jiān)聽連接管理設(shè)備的狀態(tài),獲得其最近一次啟動(dòng)的時(shí)刻,并確定為所述第二時(shí)間戳并記錄。

      在步驟103中,當(dāng)所述第一時(shí)間戳和所述第二時(shí)間戳不一致時(shí),拒絕向所述連接管理設(shè)備推送用于發(fā)送至所述目標(biāo)客戶端設(shè)備上的待推送信息。

      基于以上圖3和圖4的過程,當(dāng)服務(wù)器需要向某一客戶端設(shè)備a投遞消息時(shí),可以通過查找上述第一時(shí)間戳和第二時(shí)間戳并比對(duì)這兩個(gè)時(shí)間戳是否一致,在不一致時(shí),則拒絕向相應(yīng)的連接管理設(shè)備推送上述待推送消息;若一致,則向相應(yīng)的連接管理設(shè)備推送上述待推送消息。

      一般地,造成上述第一時(shí)間戳和第二時(shí)間戳不一致的情況主要包括:

      客戶端設(shè)備a在cm-a宕機(jī)重啟之前的某時(shí)間點(diǎn)與cm-a建立連接,當(dāng)cm-a在t3時(shí)刻重啟完成之后,客戶端設(shè)備a實(shí)際上已經(jīng)斷開與cm-a的連接,然而,數(shù)據(jù)緩存層中仍然存儲(chǔ)著客戶端設(shè)備a的登錄信息是:{在連接管理設(shè)備cm-a上登錄,cm-a的啟動(dòng)時(shí)刻是t1},而此時(shí)服務(wù)器記錄的信息是:{cm-a的啟動(dòng)時(shí)刻為t3}。

      針對(duì)上述情況,可以看出,若服務(wù)器仍然向cm-a投遞用于轉(zhuǎn)發(fā)至客戶端設(shè)備a上的待推送消息,則勢(shì)必會(huì)投遞失敗,造成不必要的資源消耗。

      在一實(shí)施例中,所述方法還可以包括:

      當(dāng)監(jiān)聽到所述連接管理設(shè)備宕機(jī)或關(guān)閉時(shí),刪除所述服務(wù)器上記錄的與所述標(biāo)識(shí)對(duì)應(yīng)的第二時(shí)間戳。

      繼續(xù)沿用上述例子,由于在cm-a宕機(jī)到重啟完成的t2~t3時(shí)間段內(nèi),所述服務(wù)器上記錄的與所述標(biāo)識(shí)cm-a對(duì)應(yīng)的信息為空(被刪除),所以在這段時(shí)間段內(nèi),如果服務(wù)器需要通過cm-a向客戶端設(shè)備a推送消息,由于服務(wù)器未獲取到與所述標(biāo)識(shí)對(duì)應(yīng)的第二時(shí)間戳,則拒絕向所述連接管理設(shè)備推送所述待推送信息,從而避免消息投遞失敗造成的不必要資源消耗。同樣地,在某些情況下,當(dāng)未查找到所述目標(biāo)客戶端設(shè)備的登錄信息(通常表明目標(biāo)客戶端設(shè)備下線)時(shí),也拒絕向所述連接管理設(shè)備推送所述待推送信息。

      基于以上內(nèi)容可見,本申請(qǐng)通過在數(shù)據(jù)緩存層存儲(chǔ)目標(biāo)客戶端設(shè)備的登錄信息以及在服務(wù)器上記錄與所述連接管理設(shè)備對(duì)應(yīng)的第二時(shí)間戳,所述登錄信息包含與所述目標(biāo)客戶端設(shè)備建立連接的所述連接管理設(shè)備的第一時(shí)間戳。其中,由于本申請(qǐng)?jiān)谶M(jìn)行將消息投遞到連接管理設(shè)備之前,需要判斷上述第一時(shí)間戳和第二時(shí)間戳是否一致,并在所述第一時(shí)間戳和所述第二時(shí)間戳不一致時(shí),拒絕向所述連接管理設(shè)備推送相應(yīng)的待推送信息,從而避免在連接管理設(shè)備發(fā)生重啟之后,服務(wù)器錯(cuò)誤地向連接管理設(shè)備投遞消息,造成消息投遞失敗的問題,本申請(qǐng)可以有效減少服務(wù)器不必要的消息投遞,降低了服務(wù)器不必要的資源消耗。

      圖5示出了根據(jù)本申請(qǐng)的一示例性實(shí)施例的電子設(shè)備的示意結(jié)構(gòu)圖。請(qǐng)參考圖5,在硬件層面,該電子設(shè)備包括處理器、內(nèi)部總線、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器,當(dāng)然還可能包括其他業(yè)務(wù)所需要的硬件。處理器從非易失性存儲(chǔ)器中讀取對(duì)應(yīng)的計(jì)算機(jī)程序到內(nèi)存中然后運(yùn)行,在邏輯層面上形成信息推送裝置。當(dāng)然,除了軟件實(shí)現(xiàn)方式之外,本申請(qǐng)并不排除其他實(shí)現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說以下處理流程的執(zhí)行主體并不限定于各個(gè)邏輯單元,也可以是硬件或邏輯器件。

      請(qǐng)參考圖6,在軟件實(shí)施方式中,該信息推送裝置可以包括查找單元201、獲取單元202和拒絕推送單元203。其中:

      查找單元201,用于查找目標(biāo)客戶端設(shè)備的登錄信息。所述登錄信息包括:與所述目標(biāo)客戶端設(shè)備建立連接的連接管理設(shè)備的標(biāo)識(shí),及所述連接管理設(shè)備的第一時(shí)間戳;其中所述第一時(shí)間戳用以標(biāo)識(shí)在所述目標(biāo)客戶端設(shè)備與所述連接管理設(shè)備建立連接的時(shí)刻之前所述連接管理設(shè)備最近一次啟動(dòng)的時(shí)刻;

      獲取單元202,用于根據(jù)所述標(biāo)識(shí),獲取服務(wù)器記錄的與所述標(biāo)識(shí)對(duì)應(yīng)的第二時(shí)間戳;其中所述第二時(shí)間戳用以標(biāo)識(shí)所述服務(wù)器最近一次監(jiān)聽到所述連接管理設(shè)備啟動(dòng)的時(shí)刻。

      拒絕推送單元203,用于當(dāng)所述第一時(shí)間戳和所述第二時(shí)間戳不一致時(shí),拒絕向所述連接管理設(shè)備推送用于發(fā)送至所述目標(biāo)客戶端設(shè)備上的待推送信息。

      可選的,所述查找單元201可用于:

      從數(shù)據(jù)緩存層查找目標(biāo)客戶端設(shè)備的登錄信息;其中所述登錄信息在所述目標(biāo)客戶端設(shè)備與所述連接管理設(shè)備建立連接時(shí)被寫入所述數(shù)據(jù)緩存層。

      可選的,所述裝置還可包括:

      時(shí)間戳記錄單元204,用于當(dāng)監(jiān)聽到所述連接管理設(shè)備重啟時(shí),獲得與所述連接管理設(shè)備重啟的時(shí)刻對(duì)應(yīng)的第二時(shí)間戳并與所述標(biāo)識(shí)對(duì)應(yīng)。

      可選的,所述裝置還可包括:

      時(shí)間戳刪除單元205,用于當(dāng)監(jiān)聽到所述連接管理設(shè)備宕機(jī)或關(guān)閉時(shí),刪除所述服務(wù)器上記錄的與所述標(biāo)識(shí)對(duì)應(yīng)的第二時(shí)間戳。

      可選的,上述時(shí)間戳記錄單元204可具體包括:

      接收單元2041,用于當(dāng)所述連接管理設(shè)備重啟時(shí),接收所述連接管理設(shè)備發(fā)送的包含所述第二時(shí)間戳的注冊(cè)指令;其中所述第二時(shí)間戳是根據(jù)所述連接管理設(shè)備重啟的時(shí)刻確定的;

      對(duì)應(yīng)單元2042,用于當(dāng)所述連接管理設(shè)備注冊(cè)成功后,將所述第二時(shí)間戳與所述標(biāo)識(shí)對(duì)應(yīng)并記錄。

      可選的,所述拒絕推送單元203還可用于:

      當(dāng)未獲取到與所述標(biāo)識(shí)對(duì)應(yīng)的第二時(shí)間戳?xí)r,拒絕向所述連接管理設(shè)備推送所述待推送信息。

      可選的,所述拒絕推送單元203還可用于:

      當(dāng)未查找到所述目標(biāo)客戶端設(shè)備的登錄信息時(shí),拒絕向所述連接管理設(shè)備推送所述待推送信息。

      上述實(shí)施例闡明的系統(tǒng)、裝置、模塊或單元,具體可以由計(jì)算機(jī)芯片或?qū)嶓w實(shí)現(xiàn),或者由具有某種功能的產(chǎn)品來實(shí)現(xiàn)。一種典型的實(shí)現(xiàn)設(shè)備為計(jì)算機(jī),計(jì)算機(jī)的具體形式可以是個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、蜂窩電話、相機(jī)電話、智能電話、個(gè)人數(shù)字助理、媒體播放器、導(dǎo)航設(shè)備、電子郵件收發(fā)設(shè)備、游戲控制臺(tái)、平板計(jì)算機(jī)、可穿戴設(shè)備或者這些設(shè)備中的任意幾種設(shè)備的組合。

      為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。

      本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

      本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

      這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

      這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

      在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。

      內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。

      計(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ǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。

      還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。

      本領(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)品的形式。

      本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。

      本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。

      以上所述僅為本申請(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)。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1