本發明屬于通信領域,尤其涉及一種配置信息推送方法及裝置。
背景技術:
應用系統在執行程序的過程中,為了靈活應對需求變化要把一些經常變化的配置沉淀為文件,在不同的部署、應用場景,需要更改不同的配置,再進行部署。在配置更改時,基于實時配置推送系統,可以讓應用系統在配置更改時不用重啟程序立即生效。例如:交易平臺中用到一個數據庫集群,在程序啟動時,使用一組數據庫連接參數與數據庫建立連接。當交易平臺使用高峰來臨時,需要切換一些數據庫連接參數,此時基于實時配置推送系統可以做到交易平臺的應用不需要重啟立即生效,盡可能的不影響業務的執行。實時配置推送系統需要高效地發現服務器新的配置值與客戶端舊的配置值不一致,并將新的配置值實時地推送給客戶端。
現有技術中,客戶端通過超文本傳輸協議(hypertexttransferprotocol,簡稱http)短連接方式與服務器進行交互,由客戶端定期發起短連接輪詢服務器。但是當前的采用定期輪詢服務器的方式,每次輪詢時長短,而且輪詢等待時間長,進而無法保證配置推送的實時性。
技術實現要素:
本發明提供一種配置信息推送方法及裝置,用于解決現有客戶端定期輪詢服務器時,由于輪詢時長短,進而無法保證配置推送的實時性的問題。
為了實現上述目的,本發明提供了一種配置信息推送方法,包括:
獲取客戶端發送的輪詢請求,所述輪詢請求中包括:各配置項的配 置信息;
判斷所述輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致;
如果判斷為是,在預設的輪詢時長內保持與所述客戶端之間的短連接;
如果在所述短連接保持的過程中所述本地配置項中有至少一個目標配置項的當前配置信息與所述輪詢請求中對應配置項的配置信息不一致,向所述客戶端推送所述目標配置項的當前配置信息,以使所述客戶端將所述目標配置項的配置更新為當前配置信息。
為了實現上述目的,本發明提供了一種配置信息推送方法,包括:
向服務器發送輪詢請求,以使所述服務器判斷所述輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致;
其中,所述輪詢請求中包括各配置項的配置信息;
接收所述服務器發送的在預設的輪詢時長內保持與所述服務器的短連接的連接保持請求;其中,所述連接保持請求是所述服務器在判斷出所述輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息均一致時發送的;
接收所述服務器用于推送目標配置項的當前配置信息的推送消息;
其中,所述推送消息是由所述服務器中保持所述短連接的過程中,判斷出至少一個所述目標配置項的當前配置信息與所述輪詢請求中對應配置項的配置信息不一致時發送的,所述目標配置項為所述本地配置項中的配置項;
將所述目標配置項的配置更新為所述當前配置信息。
為了實現上述目的,本發明提供了一種配置信息推送裝置,包括:
獲取模塊,用于獲取客戶端發送的輪詢請求,所述輪詢請求中包括:各配置項的配置信息;
判斷模塊,用于判斷所述輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致;
連接保持模塊,用于如果判斷為是,在預設的輪詢時長內保持與所 述客戶端之間的短連接;
推送模塊,用于如果在所述短連接保持的過程中所述本地配置項中有至少一個目標配置項的當前配置信息與所述輪詢請求中對應配置項的配置信息不一致,向所述客戶端推送所述目標配置項的當前配置信息,以使所述客戶端將所述目標配置項的配置更新為當前配置信息。
為了實現上述目的,本發明提供了一種配置信息推送裝置,包括:
發送模塊,用于向服務器發送輪詢請求,以使所述服務器判斷所述輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致;
其中,所述輪詢請求中包括各配置項的配置信息;
第一接收模塊,用于接收所述服務器發送的在預設的輪詢時長內保持與所述服務器的短連接的連接保持請求;其中,所述連接保持請求是所述服務器在判斷出所述輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息均一致時發送的;
第二接收模塊,用于接收所述服務器推送的目標配置項的當前配置信息的推送消息,其中,所述推送消息是由所述服務器中保持所述短連接的過程中,判斷出至少一個所述目標配置項的當前配置信息與所述輪詢請求中對應配置項的配置信息不一致時發送的,其中所述目標配置項為所述本地配置項中的配置項;
更新模塊,用于將所述目標配置項的配置更新為所述當前配置信息。
本發明提供的配置信息推送方法及裝置,通過獲取客戶端發送的輪詢請求,判斷輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致,如果均一致,在預設的輪詢時長內保持與客戶端之間的短連接,在短連接保持的過程中出現本地配置項中有至少一個目標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致,向客戶端推送目標配置項的當前配置信息,以使客戶端將目標配置項的配置更新為當前配置信息。本實施例中,在配置項的配置信息未更新時,需要在預設的輪詢時長內保持短連接,相應地增加了輪詢時長,能夠及時地感知配置項的配置信息的更改,從而保證配置信息推送的實時性。
附圖說明
圖1為本發明實施例一的配置信息推送方法的流程示意圖;
圖2為本發明實施例二的配置信息推送方法的流程示意圖;
圖3為本發明實施例二的配置信息推送方法的應用示意圖;
圖4為本發明實施例三的配置信息推送裝置的結構示意圖;
圖5為本發明實施例四的配置信息推送裝置的結構示意圖;
圖6為本發明實施例五的配置信息推送系統的結構示意圖。
具體實施方式
下面結合附圖對本發明實施例提供的配置信息推送方法及裝置進行詳細描述。
實施例一
如圖1所示,其為本發明實施例一的配置信息推送方法的流程示意圖。本實施例中執行主體為服務器。該配置信息推送方法包括以下步驟:
s101、獲取客戶端發送的輪詢請求。
其中輪詢請求中包括:各配置項的配置信息。
在客戶端與服務器之間建立一個短連接,本實施例中,服務器基于http建立與客戶端之間的短連接。由于http通信協議為文本協議,進而可以實現跨語言的配置信息的推送。
在建立短連接之后,服務器可以不斷地接收到客戶端通過該短連接發送的輪詢請求,以輪詢服務器各配置項的配置變更狀態。其中,輪詢請求中包括各配置的配置信息,該配置信息為上一次服務器為其配置的信息。其中,配置信息為配置項的配置值。
s102、判斷輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致。
服務器端接收到輪詢請求后,判斷本地存儲的配置項的當前配置信息與客戶端發送的對應配置項的配置信息是否均一致。本地存儲的配置項與客戶端的配置項是完全一樣的,但是本地配置項的配置項的配置信 息與客戶端配置項的配置信息可能存在不同。例如,配置項包括:配置項1、配置項2和配置項3,輪詢請求中配置項1的配置信息數據1、配置項2的配置信息為數據2和配置項3的配置信息為數據3,當本地存儲的配置項1~配置項3的配置信息分別為數據1~數據3時,則本地存儲的配置項的當前配置信息與客戶端發送的對應配置項的配置信息均一致,即判斷結果為是,執行步驟s103;如果本地存儲的配置項2的配置信息為數據4,則本地存儲的配置項的當前配置信息與客戶端發送的對應配置項的配置信息非完全一致,即判斷結果為否,執行步驟s105。
s103、在預設的輪詢時長內保持與客戶端之間的短連接。
當判斷出本地存儲的配置項的當前配置信息與客戶端發送的對應配置項的配置信息完全一致時,即客戶端配置項的配置信息未進行更新,此時服務器可以在預設的輪詢時長內保持與客戶端之間的短連接。具體地,服務器向客戶端發送異步處理請求,該異步處理請求指示客戶端在預設的輪詢時長內保持與服務器之間的短連接。例如,可以采用異步servlet方式保持與客戶端之間的短連接。
s104、如果在短連接保持的過程中本地配置項中至少一個目標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致,向客戶端推送目標配置項的當前配置信息,以使客戶端將目標配置項的配置更新為當前配置信息。
在與客戶端保持短連接未到達預設的輪詢時長的過程中,當服務器本地存儲的配置項中有至少一個目標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致,即服務器的目標配置項的配置信息發生了更改,服務器此時可以向客戶端推送目標配置項的當前配置信息。
例如,服務器可以向客戶端發送配置更改的輪詢響應,該輪詢響應中包括目標配置項的當前配置信息,例如,當目標配置項為配置項2時,該輪詢相應為:配置項2,數據4。相應地,客戶端在接收到該目標配置的當前配置信息后,就需要對目標配置項的配置更新為當前配置信息。
本實施例中,在獲取到目標配置項,直接將目標配置項和目標配置項的當前配置信息發送給客戶端,可以節省輪詢結果的處理時間,提高 配置信息推送的實時性。
可選地,服務器在獲取到目標配置項后,可以先將目標配置項攜帶在輪詢響應中發送給客戶端,在接收到客戶端發送的配置信息請求消息后,再將目標配置項的配置值發送給客戶端,雖然延長了輪詢結果的處理時間,但是當客戶端不需要更新配置項時,可以減少資源的浪費。
進一步地,當在與客戶端保持短連接到達預設的輪詢時長后,服務器本隊存儲的配置項的當前配置信息與輪詢請求中對應配置項的配置信息均一致,此時,服務器可以向客戶端發送配置未更改的輪詢響應,輪詢響應為空。
本實施例中,可以將與客戶端之間的短連接一直保持到預設的輪詢時間到達后再關閉。在短連接保持到預設的輪詢時間的情況下,如果服務器端自身監測出本地配置項中有至少一個目標配置項的當前配置信息與前次發送給客戶端的對應配置項的配置信息不一致時,服務器可以將目標配置項的當前配置信息進行下發給客戶端,以使客戶端的配置項的配置信息與服務器中對應配置項的配置信息一致。
或者在短連接保持的過程中,當客戶端對應的用戶主動修改了輪詢請求中至少一個配置項的配置信息后,再攜帶在輪詢請求中發送給服務器,服務器也能夠監測出本地配置項中有至少一個目標配置項的當前配置信息輪詢請求中被修改的配置項的配置信息不同,服務器可以將目標配置項的當前配置信息進行下發給客戶端,以使客戶端將目標配置信息重新配置成服務器下發的配置信息。
可選地,當在短連接保持的過程中,服務器初次出現本地配置項中有至少一個目標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致時,向客戶端推送所述目標配置項的當前配置信息之后,立刻關閉與客戶短之間的保持的短連接。在向發生完目標配置項的當前配置信息后,說明客戶端的配置已經為最新的配置了,為了繼續對客戶端的配置進行實時更新,需要立刻關閉與客戶短之間的保持的短連接,當斷開與客戶端之間的短連接之后,才能繼續在到達下一個預設的時間間隔后,繼續接收到客戶端發送的輪詢請求,以便于繼續對客戶端的配置 項進行實時更新。
為了提高對客戶端的配置進行更新的實時性,可以縮短輪詢服務器的時間間隔,以便于當服務器的配置項更新了配置信息后,更快地在客戶端進行相應配置項的信息更新。
s105、從本地配置項中獲取目標配置項。
如果判斷中本地配置項中有至少一個配置項與輪詢請求中對應配置項的配置信息不一致,說明需要將配置信息發生變更的至少一個配置項的當前配置信息發送給客戶端,獲取發生配置信息變更的至少一個配置項。本實施例中,將與輪詢請求中對應配置項的配置信息不一致的至少一個配置項稱為目標配置項。
s106、將目標配置項的當前配置信息推送給客戶端,以使客戶端將目標配置項的配置更新為當前配置信息。
在獲取到目標配置項后,服務器將目標配置項的當前配置信息推送給客戶端,例如,服務器可以向客戶端發送配置更改的輪詢響應,該輪詢響應中包括目標配置項的當前配置信息,相應地,客戶端在接收到該目標配置的當前配置信息后,就需要對目標配置項的配置更新為當前配置信息。在推送完目標配置項的當前配置信息后,關閉與客戶端之間的短連接,以便于繼續在到達下一個預設的時間間隔后,繼續接收到客戶端發送的輪詢請求,從而能夠對客戶端的配置項進行實時更新。
本實施例提供的配置信息推送方法,通過獲取客戶端發送的輪詢請求,判斷輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致,如果均一致,在預設的輪詢時長內保持與客戶端之間的短連接,在短連接保持的過程中出現本地配置項中有至少一個目標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致,向客戶端推送目標配置項的當前配置信息,以使客戶端將目標配置項的配置更新為當前配置信息。本實施例中,在配置項的配置信息未更新時,需要在預設的輪詢時長內保持短連接,相應地增加了輪詢時長,能夠及時地感知配置項的配置信息的更改,從而保證配置信息推送的實時性。
實施例二
如圖2所示,其為本發明實施例二的配置信息推送方法的流程示意圖。本實施例中執行主體為客戶端。該配置信息推送方法包括以下步驟:
s201、向服務器發送輪詢請求,以使服務器判斷輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致。
其中,輪詢請求中包括各配置項的配置信息。
本實施例中,客戶端在向服務器發送輪詢請求之前,需要基于http與服務器之間建立短連接。由于http通信協議為文本協議,進而可以實現跨語言的配置信息的推送。
在連接建立之間后,客戶端基于該短連接向服務器發送輪詢請求,以輪詢服務器各配置項的配置變更狀態。其中,輪詢請求中包括各配置的配置信息,該配置信息為上一次服務器為其配置的信息。其中,配置信息為配置項的配置值。
相應地,服務器接收到輪詢請求后,判斷本地存儲的配置項的當前配置信息與客戶端發送的對應配置項的配置信息是否均一致。本地存儲的配置項與客戶端的配置項是完全一樣的,但是本地配置項的配置項的配置信息與客戶端配置項的配置信息可能存在不同。
s202、接收服務器發送的在預設的輪詢時長內保持與服務器的短連接的連接保持請求,其中,連接保持請求是服務器在判斷出輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息均一致時發送的。
當服務器判斷出本地存儲的配置項的當前配置信息與客戶端發送的對應配置項的配置信息完全一致時,說明客戶端各配置項的配置信息未進行更新。客戶端此時將接收到服務器發送的在預設的輪詢時長內保持與服務器的短連接的連接保持請求,在接收到該連接保持請求后,客戶端將在預設的輪詢時長內繼續維持短連接。
進一步地,連接保持請求為用于指示在預設的輪詢時長內保持與服務器之間的短連接的異步處理請求。例如,可以基于異步servlet方式保持與服務器之間的短連接在預設的輪詢時長內不斷開。
s203、接收服務器推送的目標配置項的當前配置信息的推送消息,其中,推送消息是由服務器中保持短連接的過程中,判斷出至少一個目 標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致時發送的,目標配置項為本地配置項中的配置項。
在與客戶端保持短連接未到達預設的輪詢時長的過程中,如果服務器本地存儲的配置項中有至少一個目標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致,即服務器的目標配置項的配置信息發生了更改,此時,客戶端將接收到服務器發送的推送消息,其中,推送消息中包括目標配置項的當前配置信息。
可選地,客戶端接收到服務器發送配置更改的輪詢響應,該輪詢響應中包括目標配置項,客戶端在接收到輪詢響應后,向服務器發送配置請求消息,以請求服務器向客戶端下發目標配置項的當前配置信息。
進一步地,當在與客戶端保持短連接到達預設的輪詢時長后,如果服務器本隊存儲的配置項的當前配置信息與輪詢請求中對應配置項的配置信息均一致,此時,客戶端將接收到服務器發送的配置未更改的輪詢響應,其中輪詢響應為空,客戶端將感知到服務器關閉了與其的短連接。具體地,客戶端可以獲取到關閉短連接的指示消息,在接收到該指示消息后,客戶端可以在到達下一個預設的時間間隔后,繼續向服務器發送輪詢請求,以便于對配置項進行實時更新。
s204、將目標配置項的配置更新為當前配置信息。
相應地,客戶端在接收到該目標配置的當前配置信息后,就需要對目標配置項的配置更新為當前配置信息。
實際應用中,在服務器在發送了推送消息后,立刻關閉與客戶端之間的短連接。相應地,在服務器關閉了短連接后,客戶端就可以立刻感知到,為了維持客戶端配置項的實時更新,客戶端需要立刻進行按照預設的時間間隔進行計時,當到達下一個時間間隔后,再次向服務器發送輪詢請求。本實施例中,可以縮短輪詢服務器的時間間隔,以便于當服務器的配置項更新了配置信息后,更快地在客戶端進行相應配置項的信息更新,從而提高對客戶端的配置進行更新的實時性。
本實施例提供的配置信息推送方法,通過向服務器發送輪詢請求,以使服務器判斷輪詢請求中各配置項的配置信息與本地對應配置項的當 前配置信息是否均一致,如果均一致,在預設的輪詢時長內保持與服務器之間的短連接,在短連接保持的過程中出現本地配置項中有至少一個目標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致,客戶端將接收到包括目標配置項的當前配置信息的推送消息,客戶端將目標配置項的配置更新為當前配置信息。本實施例中,在配置項的配置信息未更新時,需要在預設的輪詢時長內保持短連接,相應地增加了輪詢時長,能夠及時地感知配置項的配置信息的更改,從而保證配置信息推送的實時性。
如圖3所示,其為本發明上述實施例具體的應用示例,用于對上述實施例進行解釋說明。在該示例中客戶端通過http短連接與服務器進行交互,客戶端定期基于短連接發起接輪詢請求去輪詢服務器。
s301、客戶端向服務器發送輪詢請求。
其中,輪詢請求中訂閱了2個配置項:配置項1和配置項2,其中,配置項的配置值為datald1group1;配置項2的配置值為datald2group2。
假設0.0s時刻,客戶端通過向服務器發送輪詢請求,來輪詢配置項配置信息的變更狀態。一般情況下,配置項的配置信息為配置項的配置值。
s302,服務器接收到輪詢請求后,判斷本地存儲的各配置項的配置值與輪詢請求中對應配置項的配置值是否一致。
若均一致,執行步驟s303。
s303、服務器基于異步servlet技術在預設的輪詢時長內保持與客戶端內的短連接。
若一致說明服務器對各配置項的配置值未進行更新,即輪詢結果為沒有變更。服務器基于異步servlet技術在預設的輪詢時長內保持與客戶端之間的短連接。在該示例中,預設的輪詢時長為5s。
s304、服務器向客戶端發送輪詢響應。
其中,輪詢響應包括null。
在該示例中,預設的輪詢時長為5s,則服務器等到達輪詢時長5s時即5.0s時刻,在該示例中在短連接保持的5s時間內,服務器中配置項1 和配置項2的配置信息未發生變更,則服務器向客戶端發送配置無更改的輪詢響應,其中該輪詢響應中包括null,并關閉短連接。
s305、客戶端在到達預設的時間間隔后,重新向服務器發送輪詢請求。
當客戶端感知到與服務器端的短連接斷開后,在到達下一個預設的時間間隔時,重新向服務器端發送輪詢請求,輪詢配置變更狀態,在該示例中,預設的時間間隔為1ms,即5.001s時刻。重新向服務器端發送輪詢請求,其中,輪詢請求中訂閱的配置項以及配置項的配置信息。在該實例中訂閱的配置項為:配置項1和配置項2。由于經過上次輪詢后,配置項1和配置項2的輪詢結果為未發生變更,則配置項1的配置值仍為datald1group1;配置項2的配置值仍為datald2group2。
s306、服務器端判斷本地存儲的各配置項的配置值與輪詢請求中對應配置項的配置值是否一致。
若一致,執行步驟s306。
s307、服務器基于異步servlet技術在預設的輪詢時長內保持與客戶端內的短連接。
s308、在保持短連接未到達輪詢時長內,服務器在配置項2的配置值發送變更時向客戶端發送配置更改的輪詢響應,該輪詢相應中攜帶配置項2。
若一致說明服務器對各配置項的配置值未進行更新,即輪詢結果為沒有變更,在保持短連接未到達輪詢時長的過程中,向客戶端發送配置未更改的輪詢響應1s后即6.0s時刻,配置項2:datald2group2發生變更,則向客戶端發送配置有更改的輪詢響應,該輪詢響應中包括配置項2,其中,配置項2為目標配置項。假設輪詢到該變更的時間為3ms,則6.003s時刻向客戶端發送配置有更改的輪詢響應。此時即6.003s時刻客戶端感知到配置變更,距離配置發生變更的時間即6.0s時刻很短,可認為客戶端實時地感知到配置的變更。
s309、客戶端向服務器發送配置值請求。
具體地,客戶端在6.003s時刻接收到配置有更改的輪詢響應后,在 4.004s向服務器發送配置值請求,以請求將配置項2配置為服務器的最新的配置值。其中,最新的配置值就是配置項2的當前配置值。
s310、服務器向客戶端發送配置項2的最新配置值。
在接收到配置值請求后,服務器在6.005s時刻將配置項2的最新配置值發送給客戶端,相應地,客戶端在接收到最新的配置值后,將配置項2的配置值更新為最新的配置值,并關閉短連接。
s311、客戶端將配置項2的配置值更新為最新配置值。
具體地,客戶端在6.005s時刻接收到最新的配置值后,將配置項2的配置值更新為輪詢相應中配置項2的最新的當前配置值。
可選地,在步驟s308中服務器向客戶端發送的配置更改的輪詢響應時同時攜帶配置項2和配置項2的最新配置值。其中配置項2最新的配置值為datald2%02%group2。當客戶端接收到輪詢響應后,則將配置項2的配置值更新為最新的配置值。
此處需要說明,雖然預設的輪詢時長為5s,但是在保持短連接未到輪詢時長時出現配置更改的情況,直到客戶端將對應配置項的配置值更新為最新的配置值僅耗時約1s。為了提高客戶端實時更新配置項配置的目的,需要在配置完成后立刻斷開短連接,以便于客戶端盡快發送下一個輪詢請求,以便于輪詢配置的變更狀態,達到實時向客戶端推送信息的目的。
s312、客戶端在到達預設的時間間隔后,重新向服務器發送輪詢請求。
客戶端感知到與服務器的短連接斷開后,在下1ms即6.006s時刻,重新向服務器端發送輪詢請求,輪詢配置變更狀態,其中,輪詢請求中包括配置項1和配置項2以及各自的配置值。在該步驟中,配置項1的配置值為datald1group1;配置項2的配置值為datald2%2%group2。
在該示例中,在配置項的配置信息未更新時,在預設的輪詢時長內保持短連接,相當于增加了輪詢時長,能夠及時地感知配置項的配置信息的更改,從而保證配置信息推送的實時性。
實施例三
如圖4所示,其為本發明實施例三的配置信息推送裝置的結構示意圖。該配置信息推送裝置包括:獲取模塊11、判斷模塊12、連接保持模塊13、推送模塊14和關閉模塊15。
其中,獲取模塊11,用于獲取客戶端發送的輪詢請求,所述輪詢請求中包括:各配置項的配置信息。
判斷模塊12,用于判斷所述輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致。
連接保持模塊13,用于如果判斷為是,在預設的輪詢時長內保持與所述客戶端之間的短連接。
推送模塊14,用于如果在所述短連接保持的過程中所述本地配置項中有至少一個目標配置項的當前配置信息與所述輪詢請求中對應配置項的配置信息不一致,向所述客戶端推送所述目標配置項的當前配置信息,以使所述客戶端將所述目標配置項的配置更新為當前配置信息。
關閉模塊15,用于關閉與所述客戶端之間的所述短連接。
關閉模塊15,具體用于當在所述短連接保持的過程中初次出現所述本地配置項中有至少一個目標配置項的當前配置信息與所述輪詢請求中對應配置項的配置信息不一致時,向所述客戶端推送所述目標配置項的當前配置信息,以使所述客戶端將所述目標配置項的配置更新為當前配置信息之后,關閉與所述客戶端之間的所述短連接。
關閉模塊15,還具體用于當到達所述預設的輪詢時長時,關閉與所述客戶端之間的所述短連接。
進一步地,推送模塊14,還用于在所述判斷模塊12判斷結果為否時,從所述本地配置項中獲取所述目標配置項,以及將所述目標配置項的當前配置信息推送給所述客戶端,以使所述客戶端將所述目標配置項的配置更新為當前配置信息。
進一步地,推送模塊14,具體用于向所述客戶端發送輪詢響應,所述輪詢響應包括目標配置項,接收所述客戶端發送的配置信息請求,以及將所述目標配置項的當前配置信息發送給所述客戶端,以使所述客戶端將所述目標配置項的配置更新為當前配置信息。
進一步地,獲取模塊11,還用于在所述關閉模塊15關閉與所述客戶端之間的所述短連接之后,在到達預設的時間間隔后重新獲取所述客戶端發送所述輪詢請求。
進一步地,連接保持模塊13,具體用于在所述判斷模塊的判斷結果為是,向所述客戶端發送異步處理請求,以使所述客戶端在所述預設的輪詢時長內保持所述短連接。
本實施例提供的配置信息推送裝置,通過獲取客戶端發送的輪詢請求,判斷輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致,如果均一致,在預設的輪詢時長內保持與客戶端之間的短連接,在短連接保持的過程中出現本地配置項中有至少一個目標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致,向客戶端推送目標配置項的當前配置信息,以使客戶端將目標配置項的配置更新為當前配置信息。本實施例中,在配置項的配置信息未更新時,需要在預設的輪詢時長內保持短連接,相應地增加了輪詢時長,能夠及時地感知配置項的配置信息的更改,從而保證配置信息推送的實時性。
實施例四
如圖5所示,其為本發明實施例四的配置信息推送裝置的結構示意圖。該配置信息推送裝置包括:發送模塊21、第一接收模塊22、第二接收模塊23和更新模塊24。
其中,發送模塊21,用于向服務器發送輪詢請求,以使所述服務器判斷所述輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致。
其中,所述輪詢請求中包括各配置項的配置信息。
第一接收模塊22,用于接收所述服務器發送的在預設的輪詢時長內保持與所述服務器的短連接的連接保持請求。
其中,所述連接保持請求是所述服務器在判斷出所述輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息均一致時發送的。
第二接收模塊23,用于接收所述服務器推送的目標配置項的當前配置信息的推送消息。
其中,所述推送消息是由所述服務器中保持所述短連接的過程中,判斷出至少一個所述目標配置項的當前配置信息與所述輪詢請求中對應配置項的配置信息不一致時發送的,所述目標配置項為所述本地配置項中的配置項。
更新模塊24,用于將所述目標配置項的配置更新為所述當前配置信息。
進一步地,發送模塊21,還用于在所述第二接收模塊接收所述服務器用于推送所述目標配置項的當前配置信息的所述推送消息之前,向所述服務器發送配置信息請求,所述配置信息請求用于請求所述服務器下發所述目標配置項的當前配置信息。
進一步地,第一接收模塊22,還用于接收所述服務器發送的關閉所述短連接的指示消息。
其中,所述指示消息是由所述服務器在到達預設的輪詢時長后未發送所述推送消息時發送的。
進一步地,發送模塊21,還用于在關閉與所述服務器之間的短連接之后,在到達預設的時間間隔后重新向所述服務器發送所述輪詢請求。
進一步地,連接保持請求為用于指示在所述預設的輪詢時長內保持與所述服務器之間的所述短連接的異步處理請求。
進一步地,發送模塊21,還用于在所述更新模塊24將所述目標配置項的配置更新為所述當前配置信息之后,在到達預設的時間間隔后重新向所述服務器發送所述輪詢請求。
本實施例提供的配置信息推送裝置,通過向服務器發送輪詢請求,以使服務器判斷輪詢請求中各配置項的配置信息與本地對應配置項的當前配置信息是否均一致,如果均一致,在預設的輪詢時長內保持與服務器之間的短連接,在短連接保持的過程中出現本地配置項中有至少一個目標配置項的當前配置信息與輪詢請求中對應配置項的配置信息不一致,客戶端將接收到包括目標配置項的當前配置信息的推送消息,客戶端將目標配置項的配置更新為當前配置信息。本實施例中,在配置項的配置信息未更新時,需要在預設的輪詢時長內保持短連接,相應地增加了輪 詢時長,能夠及時地感知配置項的配置信息的更改,從而保證配置信息推送的實時性。
實施例五
如圖6所示,其為本發明實施例五的配置信息推送系統的結構示意圖。該配置信息推送系統包括:服務器1和客戶端2,其中服務器1結構實現方式以及處理過程,可參見上述實施例三以及說明書附圖4中的記載,此次不再贅述。其中客戶端2結構實現方式以及處理過程,可參見上述實施例四以及說明書附圖5中的記載,此次不再贅述。
本實施例中,在配置項的配置信息未更新時,需要在預設的輪詢時長內保持短連接,相應地增加了輪詢時長,能夠及時地感知配置項的配置信息的更改,從而保證配置信息推送的實時性。
本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質。
最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。