本發(fā)明涉及數(shù)據(jù)處理技術領域,特別是涉及一種服務器事件處理系統(tǒng)及方法。
背景技術:
目前,服務器是提供計算服務器的設備。由于服務器需要響應服務請求,并進行處理,因此一般來說服務器應具備承擔服務并且保障服務器的能量。進一步的,服務器對事件的處理能力和速度,特別是服務器對服務器事件的處理能力和速度極大的影響服務系統(tǒng)的正常運行。
技術實現(xiàn)要素:
本發(fā)明提供一種服務器事件處理系統(tǒng)及方法,實現(xiàn)了服務器事件的雙重處理,保障了服務器事件不被遺漏,保障了服務器事件的處理質(zhì)量,同時更提高了服務器事件處理以及處理結果返回的速度。
本發(fā)明解決上述技術問題的技術方案如下:一種服務器事件處理系統(tǒng),包括:連接服務器和消息服務器,所述連接服務器包括緩存引擎和會話控制模型;
所述緩存引擎,用于監(jiān)聽所述消息服務器,獲取服務器事件,將所述服務器事件發(fā)送至所述會話控制模型,并處理所述服務器事件,得到并發(fā)送服務器事件處理結果列表至所述會話控制模型;
所述會話控制模型,用于接收并分別所述處理服務器事件和所述服務器事件處理結果列表,并將處理結果發(fā)送至客戶端,其中,所述會話控制模型和客戶端一一對應。
本發(fā)明的有益效果是:緩存引擎獲取到消息服務器中的服務器事件后,一方面將該服務器事件發(fā)送給所有的會話控制模型,由會話控制模型直接處理,每個會話控制模型處理后將處理結果發(fā)送給其對應的客戶端,另一方面,緩存引擎處理該服務器事件,并得到處理結果列表后,再將該處理結果列表發(fā)送給所有的會話控制模型,每個會話控制模型處理上述處理結果列表,并將處理結果發(fā)送至其對應的客戶端,實現(xiàn)了服務器事件的雙重處理,保障了服務器事件不被遺漏,同時,所有的服務器事件均通過會話控制模型處理,保障了服務器事件的處理質(zhì)量,另外,每個客戶端對應一個會話控制模型,提高了處理以及處理結果返回的速度。
在上述技術方案的基礎上,本發(fā)明還可以做如下改進。
進一步,所述會話控制模型包括視圖數(shù)據(jù)模型;
則所述會話控制模型,用于接收并分別將所述服務器事件和所述服務器事件處理結果列表發(fā)送至所述視圖數(shù)據(jù)模型;
所述視圖數(shù)據(jù)模型,用于接收并處理所述服務器事件,得到第一處理結果;接收并處理所述服務器事件處理結果列表,得到第二處理結果;分別將所述第一處理結果和所述第二處理結果發(fā)送至所述會話控制模型對應的客戶端,其中,所述第一處理結果和所述第二處理結果分別為視圖變更內(nèi)容。
進一步,所述緩存引擎包括緩存類事件處理器;
則所述緩存引擎在用于監(jiān)聽所述消息服務器并獲取和處理服務器事件時,具體包括:
監(jiān)聽所述消息服務器,獲取服務器事件;根據(jù)所述服務器事件,循環(huán)取得其對應的緩存類事件處理器列表;所述緩存類事件處理器列表中的緩存類事件處理器分別處理所述服務器事件,得到服務器事件處理結果列表;發(fā)送所述服務器事件處理結果列表至所述會話控制模型。
進一步,所述連接服務器還包括注冊模塊和會話控制模型創(chuàng)建模塊;
所述注冊模塊,用于在接收到客戶端發(fā)送的注冊類事件后,調(diào)用登陸處理方法處理所述注冊類事件,得到并向客戶端返回登陸處理結果;
所述會話控制模型創(chuàng)建模塊,用于在客戶端登陸成功后,創(chuàng)建所述客戶端對應的所述會話控制模型。
進一步,所述會話控制模型還包括直接事件處理器;
則所述會話控制模型還將所述服務器事件和所述服務器事件處理結果列表發(fā)送至所述直接事件處理器;
所述直接事件處理器,用于接收并處理所述服務器事件,得到第三處理結果;接收并處理所述服務器事件處理結果列表,得到第四處理結果;分別將所述第三處理結果和所述第四處理結果發(fā)送至所述會話控制模型對應的客戶端。
本發(fā)明還提供了一種服務器事件處理方法,包括:
步驟1、緩存引擎監(jiān)聽消息服務器,獲取服務器事件,將所述服務器事件發(fā)送至會話控制模型,并處理所述服務器事件,得到并發(fā)送服務器事件處理結果列表至所述會話控制模型;
步驟2、所述會話控制模型接收并分別處理所述服務器事件和所述服務器事件處理結果列表,并將處理結果發(fā)送至客戶端,
其中,所述會話控制模型與客戶端一一對應。
本發(fā)明的有益效果是:緩存引擎獲取到消息服務器中的服務器事件后,一方面將該服務器事件發(fā)送給所有的會話控制模型,由會話控制模型直接處理,每個會話控制模型處理后將處理結果發(fā)送給其對應的客戶端,另一方面,緩存引擎處理該服務器事件,并得到處理結果列表后,再將該處理結果列表發(fā)送給所有的會話控制模型,每個會話控制模型處理上述處理結果列表,并將處理結果發(fā)送至其對應的客戶端,實現(xiàn)了服務器事件的雙重處理,保障了服務器事件不被遺漏,同時,所有的服務器事件均通過會話控制模型處理,保障了服務器事件的處理質(zhì)量,另外,每個客戶端對應一個會話控制模型,提高了處理以及處理結果返回的速度。
進一步,所述會話控制模型包括視圖數(shù)據(jù)模型;
則所述步驟2包括:
步驟2.1、所述會話控制模型接收并分別將所述服務器事件和所述服務器事件處理結果列表發(fā)送至所述視圖數(shù)據(jù)模型;
步驟2.2、所述視圖數(shù)據(jù)模型接收并處理所述服務器事件,得到第一處理結果;
步驟2.3、所述視圖數(shù)據(jù)模型接收并處理所述服務器事件處理結果列表,得到第二處理結果;
步驟2.4、分別將所述第一處理結果和所述第二處理結果發(fā)送至所述會話控制模型對應的客戶端,其中,所述第一處理結果和所述第二處理結果分別為視圖變更內(nèi)容。
進一步,所述緩存引擎包括緩存類事件處理器;
則所述步驟1包括:
步驟1.1、所述緩存引擎監(jiān)聽所述消息服務器,獲取服務器事件;
步驟1.2、根據(jù)所述服務器事件,循環(huán)取得其對應的緩存類事件處理器列表;
步驟1.3、所述緩存類事件處理器列表中的緩存類事件處理器分別處理所述服務器事件,得到服務器事件處理結果列表;
步驟1.4、發(fā)送所述服務器事件處理結果列表至所述會話控制模型。
進一步,在所述緩存引擎監(jiān)聽所述消息服務器之前,所述方法還包括:
注冊模塊在接收到客戶端發(fā)送的注冊類事件后,調(diào)用登陸處理方法處理所述注冊類事件,得到并向客戶端返回登陸處理結果;
若所述登陸處理結果為成功,則視圖會話控制器創(chuàng)建模塊創(chuàng)建所述客戶端對應的所述會話控制模型。
進一步,所述會話控制模型還包括直接事件處理器;
則所述步驟2還包括:
步驟2.5、所述會話控制模型將所述服務器事件和所述服務器事件處理結果列表發(fā)送至所述直接事件處理器;
步驟2.6、所述直接事件處理器接收并處理所述服務器事件,得到第三處理結果;
步驟2.7、所述直接事件處理器接收并處理所述服務器事件處理結果列表,得到第四處理結果;
步驟2.8、分別將所述第三處理結果和所述第四處理結果發(fā)送至所述會話控制模型對應的客戶端。
附圖說明
圖1為本發(fā)明實施例一提供的一種服務器事件處理系統(tǒng)的示意性結構圖;
圖2為本發(fā)明實施例二提供的一種服務器事件處理系統(tǒng)的示意性結構圖;
圖3為本發(fā)明實施例三提供的一種服務器事件處理方法的流程示意圖;
圖4為圖3中的步驟220的流程示意圖;
圖5為圖3中的步驟210的流程示意圖。
具體實施方式
以下結合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
實施例一
一種服務器事件處理系統(tǒng)100,如圖1所示,包括:連接服務器和消息服務器,連接服務器包括緩存引擎和會話控制模型。
緩存引擎,用于監(jiān)聽消息服務器,獲取服務器事件,將服務器事件發(fā)送至會話控制模型,并處理服務器事件,得到并發(fā)送服務器事件處理結果列表至會話控制模型。
會話控制模型,用于接收并分別處理服務器事件和服務器事件處理結果列表,并將處理結果發(fā)送至客戶端。
其中,會話控制模型和客戶端一一對應。
另外,需要說明的是,會話控制模型中有多個獨立的處理線程,部分獨立處理線程用于對接收到的事件進行處理,部分獨立處理線程用于向客戶端發(fā)送處理結果。
實施例二
一種服務器事件處理系統(tǒng)100,如圖2所示,包括:連接服務器和消息服務器,連接服務器包括注冊模塊、會話控制模型創(chuàng)建模塊、緩存引擎和會話控制模型。
注冊模塊,用于在接收到客戶端發(fā)送的注冊類事件后,調(diào)用登陸處理方法處理注冊類事件,得到并向客戶端返回登陸處理結果。
會話控制模型創(chuàng)建模塊,用于在客戶端登陸成功后,創(chuàng)建客戶端對應的所述會話控制模型。
緩存引擎,用于監(jiān)聽消息服務器,獲取服務器事件,將服務器事件發(fā)送至會話控制模型,并處理服務器事件,得到并發(fā)送服務器事件處理結果列表至會話控制模型。
會話控制模型,用于接收并分別處理服務器事件和服務器事件處理結果列表,并將處理結果發(fā)送至客戶端。
其中,會話控制模型和客戶端一一對應,因此,連接服務器內(nèi)的會話控制模型的個數(shù)取決于客戶端連接的個數(shù)。
另外,一個會話控制模型又包括多個視圖數(shù)據(jù)模型,會話控制模型接收并分別將服務器事件和服務器事件處理結果列表發(fā)送至所有的視圖數(shù)據(jù)模型,所有的視圖數(shù)據(jù)模型接收并處理服務器事件,得到第一處理結果,所有的試圖數(shù)據(jù)模型接收并處理服務器事件處理結果列表,得到第二處理結果,分別將第一處理結果和第二處理結果發(fā)送至會話控制模型對應的客戶端,其中,第一處理結果和所述第二處理結果分別為視圖變更內(nèi)容。
另外,需要說明的是,會話控制模型中有多個獨立的處理線程,部分獨立處理線程用于對接收到的事件進行處理,部分獨立處理線程用于向客戶端發(fā)送處理結果
需要說明的是,上述視圖變更內(nèi)容為兩次視圖的差異部分,例如,a服務器事件由緩存引擎從消息服務器中監(jiān)聽并獲取到,并由緩存引擎將其發(fā)送至會話控制模型,會話控制模型中的試圖數(shù)據(jù)模型對該服務器事件進行處理,得到a結果,當a服務器事件由緩存引擎從消息服務器中再次監(jiān)聽并獲取到,且會話控制模型再次接收到該服務器事件時,由試圖數(shù)據(jù)模型進行處理,處理得到b結果,a結果和b結果之間的差異,即為視圖變更內(nèi)容,會話控制模型會將該變更內(nèi)容封裝為model事件,通過更新線程推送至客戶端。
另外,緩存引擎包括緩存類事件處理器(簡稱,mr事件處理器),用于處理緩存相關的服務器事件,例如,處理從消息服務器中監(jiān)聽到的服務器事件,如視圖更改請求事件。則緩存引擎在用于監(jiān)聽消息服務器并獲取和處理服務器事件時,具體包括:監(jiān)聽消息服務器,獲取服務器事件,根據(jù)服務器事件,循環(huán)取得其對應的緩存類事件處理器列表,緩存類事件處理器列表中的緩存類事件處理器分別處理服務器事件,得到服務器事件處理結果列表,發(fā)送服務器事件處理結果列表至會話控制模型。
其中,緩存引擎中預設有服務器事件主題,緩存引擎在獲取到服務器事件后,會根據(jù)服務器事件的主題,一一找到該主題對應的緩存類事件處理器,得到緩存類事件處理器列表,該緩存類事件處理器列表中的緩存類事件處理器分別處理該服務器事件,因此,該服務器事件經(jīng)各緩存類事件處理器處理后即得到服務器事件處理結果列表。
一個會話控制模型還包括多個直接事件處理器(簡稱,d事件處理器),則會話控制模型還將服務器事件和服務器事件處理結果列表發(fā)送至所有的直接事件處理器,直接事件處理器,用于接收并處理上述服務器事件和上述服務器事件處理結果列表,得到并發(fā)送第三處理結果至會話控制模型對應的客戶端。
需要說明的是,連接服務器中的緩存引擎有1個,在連接服務器啟動的時候,緩存引擎會注冊直接事件處理器,且直接事件處理器僅在緩存引擎中注冊,會話控制模型會在客戶端登陸后,從緩存引擎中拷貝該直接事件處理器,上述直接事件處理器只有在會話控制模型中進行事件的處理。
實施例三
一種服務器事件處理方法200,如圖3所示,包括:
步驟210、緩存引擎監(jiān)聽消息服務器,獲取服務器事件,將該服務器事件發(fā)送至會話控制模型,并處理該服務器事件,得到并發(fā)送服務器事件處理結果列表至上述會話控制模型。
步驟220、會話控制模型接收并分別處理服務器事件和所述服務器事件處理結果列表,得到并發(fā)送處理結果至客戶端,其中,會話控制模型與客戶端一一對應。
會話控制模型包括視圖數(shù)據(jù)模型和直接事件處理器,如圖4所示,則步驟220具體包括:
步驟221、會話控制模型接收并分別將服務器事件和服務器事件處理結果列表發(fā)送至視圖數(shù)據(jù)模型,并分別將服務器事件和服務器事件處理結果列表發(fā)送至直接事件處理器。
步驟222、視圖數(shù)據(jù)模型和直接事件處理器分別接收并處理服務器事件,并分別得到第一處理結果和第三處理結果。
步驟223、視圖數(shù)據(jù)模型和直接事件處理器還分別接收并處理服務器事件處理結果列表,分別得到第二處理結果和第四處理結果。
步驟224、分別將第一處理結果、第二處理結果、第三處理結果和第四處理結果發(fā)送至會話控制模型對應的客戶端,其中,第一處理結果和第二處理結果分別為視圖變更內(nèi)容。
可以理解的,步驟222和步驟223沒有先后順序,可以同時進行,也可以先進行步驟222,再進行步驟223。
緩存引擎包括緩存類事件處理器,則如圖5所示,步驟210具體包括:
步驟211、緩存引擎監(jiān)聽消息服務器,獲取服務器事件。
步驟212、根據(jù)服務器事件,循環(huán)取得其對應的緩存類事件處理器列表。
步驟213、緩存類事件處理器列表中的緩存類事件處理器分別處理服務器事件,得到服務器事件處理結果列表。
步驟214、發(fā)送服務器事件處理結果列表至會話控制模型。
另外,在步驟210之前,連接服務器中注冊生成客戶端對應的會話控制模型,具體包括:
注冊模塊在接收到客戶端發(fā)送的注冊類事件后,調(diào)用登陸處理方法處理注冊類事件,得到并向客戶端返回登陸處理結果,若登陸處理結果為成功,則視圖會話控制器創(chuàng)建模塊創(chuàng)建客戶端對應的所述會話控制模型。
緩存類事件處理器用于處理緩存相關事件,緩存相關事件可為從消息服務器中獲取的服務器事件也可為緩存中的事件,直接事件處理器用于處理非緩存相關的服務器事件,例如,處理客戶端直接發(fā)送過來的事件,如點擊進入頁面按鈕、滑屏等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。