亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種消息處理方法和裝置的制造方法

文檔序號:10572567閱讀:402來源:國知局
一種消息處理方法和裝置的制造方法
【專利摘要】本發(fā)明公開了一種消息處理方法和裝置。該方法包括:在接收到的消息中,查找消息條件;獲取預(yù)先創(chuàng)建的散列表中,與所述消息條件對應(yīng)的處理邏輯;根據(jù)所述處理邏輯,對所述消息執(zhí)行邏輯處理。本發(fā)明事先為用于觸發(fā)處理邏輯的消息條件生成散列地址,并在散列地址指向的存儲位置保存處理邏輯,當(dāng)有消息送達服務(wù)器時,首先根據(jù)該消息中的消息條件生成散列地址,通過散列地址直接找到處理邏輯,根據(jù)該處理邏輯對該消息進行邏輯處理?;诒景l(fā)明可以有效降低處理邏輯的判斷復(fù)雜度,提供開發(fā)效率,減少服務(wù)器的后期維護成本。
【專利說明】
一種消息處理方法和裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種消息處理方法和裝置。
【背景技術(shù)】
[0002]服務(wù)器在處理業(yè)務(wù)時,需要對不同的消息作出不同的處理。在現(xiàn)有技術(shù)中,服務(wù)器需要根據(jù)消息的種類去做枚舉,來確定消息應(yīng)當(dāng)執(zhí)行的處理邏輯,即列舉消息的每一種可能情況,對每一種情況做出邏輯判斷,最終確定消息應(yīng)當(dāng)執(zhí)行的處理邏輯。例如:現(xiàn)有8種消息類型、6種事件類型,7種事件鍵值(KEY),那么如果對消息所有可能出現(xiàn)的情況進行邏輯判斷時,就需要實現(xiàn)8*6*7 = 336種邏輯判斷,運行效率較低。
[0003]在實際應(yīng)用場景中,例如:微信公眾號的服務(wù)器端對于客戶端發(fā)來的消息,首先需要服務(wù)器對該消息做多重判斷,而不能直接判斷出該消息應(yīng)該執(zhí)行的處理邏輯。隨著業(yè)務(wù)的不斷擴展,處理邏輯判斷會變得異常復(fù)雜,影響開發(fā)效率,并且增加后期服務(wù)器的維護成本。

【發(fā)明內(nèi)容】

[0004]本發(fā)明的目的是提供一種消息處理方法和裝置,用以解決現(xiàn)有技術(shù)中消息的處理邏輯判斷復(fù)雜的問題。
[0005]針對上述技術(shù)問題,本發(fā)明是通過以下技術(shù)方案來解決的。
[0006]本發(fā)明提供了一種消息處理方法,包括:在接收到的消息中,查找消息條件;獲取預(yù)先創(chuàng)建的散列表中,與所述消息條件對應(yīng)的處理邏輯;根據(jù)所述處理邏輯,對所述消息執(zhí)行邏輯處理。
[0007]其中,創(chuàng)建所述散列表,包括:預(yù)先建立消息條件和處理邏輯之間的對應(yīng)關(guān)系;為所述消息條件生成散列地址;將所述消息條件對應(yīng)的所述處理邏輯存儲在所述散列地址中,形成散列表。
[0008]其中,所述獲取預(yù)先生成的散列表中,與所述消息條件對應(yīng)的處理邏輯,包括:為查找到的所述消息條件生成散列地址;根據(jù)為查找到的所述消息條件生成的所述散列地址,在預(yù)先創(chuàng)建的散列表中獲取處理邏輯。
[0009]其中,所述消息條件包括:消息的屬性信息。
[0010]其中,所述屬性信息包括:消息類型和事件類型。
[0011]本發(fā)明還提供了一種消息處理裝置,包括:查找模塊,用于在接收到的消息中,查找消息條件;獲取模塊,用于獲取預(yù)先創(chuàng)建的散列表中,與所述消息條件對應(yīng)的處理邏輯;處理模塊,用于根據(jù)所述處理邏輯,對所述消息執(zhí)行邏輯處理。
[0012]其中,所述裝置還包括創(chuàng)建模塊;所述創(chuàng)建模塊,用于在查找模塊在接收到的消息中查找消息條件之前,預(yù)先創(chuàng)建所述散列表;所述創(chuàng)建模塊,具體用于預(yù)先建立消息條件和處理邏輯之間的對應(yīng)關(guān)系;為所述消息條件生成散列地址;將所述消息條件對應(yīng)的處理邏輯存儲在所述散列地址中,形成散列表。
[0013]其中,所述獲取模塊,用于:為查找到的所述消息條件生成散列地址;根據(jù)為查找到的所述消息條件生成的所述散列地址,在預(yù)先創(chuàng)建的散列表中獲取處理邏輯。
[0014]其中,所述消息條件包括:消息的屬性信息。
[0015]其中,所述屬性信息包括:消息類型和事件類型。
[0016]本發(fā)明有益效果如下:
[0017]本發(fā)明事先為用于觸發(fā)處理邏輯的消息條件生成散列地址,并在散列地址指向的存儲位置保存處理邏輯,當(dāng)有消息送達服務(wù)器時,首先根據(jù)該消息中的消息條件生成散列地址,通過散列地址直接找到處理邏輯,根據(jù)該處理邏輯對該消息進行邏輯處理?;诒景l(fā)明可以有效降低處理邏輯的判斷復(fù)雜度,提供開發(fā)效率,減少服務(wù)器的后期維護成本。
【附圖說明】
[0018]圖1是根據(jù)本發(fā)明一實施例的消息處理方法的流程圖;
[0019]圖2是根據(jù)本發(fā)明一實施例的消息處理裝置的結(jié)構(gòu)圖。
【具體實施方式】
[0020]本發(fā)明事先為用于觸發(fā)處理邏輯的消息條件生成散列地址,并在散列地址指向的存儲位置保存處理邏輯,也就是說,將用于觸發(fā)處理邏輯的消息條件與處理邏輯做一一對應(yīng)的映射關(guān)系。當(dāng)有消息送達服務(wù)器時,首先根據(jù)該消息中的消息條件生成散列地址,通過散列地址可以直接找到處理邏輯,根據(jù)該消息處理邏輯對該消息進行邏輯處理?;诒景l(fā)明可以有效降低處理邏輯的判斷復(fù)雜度,提供開發(fā)效率,減少服務(wù)器的后期維護成本。
[0021]以下結(jié)合附圖以及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
[0022]本發(fā)明實施例提供了一種消息處理方法,如圖1所示,為根據(jù)本發(fā)明一實施例的消息處理方法的流程圖。本實施例在服務(wù)器側(cè)執(zhí)行。
[0023]步驟S110,在接收到的消息中,查找消息條件。
[0024]步驟S120,獲取預(yù)先創(chuàng)建的散列表中,與所述消息條件對應(yīng)的處理邏輯。
[0025]步驟S130,根據(jù)所述處理邏輯,對所述消息執(zhí)行邏輯處理。
[0026]消息條件包括:消息的屬性信息。屬性信息包括:消息類型、事件類型。屬性信息還可以包括:事件鍵值。
[0027]散列表是根據(jù)關(guān)鍵字(Keyvalue)直接訪問內(nèi)存存儲位置的數(shù)據(jù)結(jié)構(gòu)。也就是說,散列表通過計算一個關(guān)于鍵值的函數(shù),將所需查詢的數(shù)據(jù)映射到散列表中一個位置,加快了查找速度。
[0028]在本實施例中,散列表用于存儲消息條件和處理邏輯的映射關(guān)系。在獲得消息之后,在消息中查找消息條件,為查找到的消息條件生成散列地址;根據(jù)為查找到的消息條件生成的散列地址,在預(yù)先創(chuàng)建的散列表中獲取處理邏輯,即在預(yù)先創(chuàng)建的散列表中,獲取該散列地址指向的處理邏輯。換言之,提取消息中包含的消息條件;根據(jù)消息條件計算散列地址,根據(jù)該散列地址可以直接通過散列表找到處理邏輯。
[0029]進一步地,在基于散列表執(zhí)行消息處理之前,預(yù)先建立散列表的步驟包括:預(yù)先建立消息條件和處理邏輯之間的對應(yīng)關(guān)系;為所述消息條件生成散列地址;將所述消息條件對應(yīng)的處理邏輯存儲在所述散列地址中,形成散列表。具體的,因為消息所承載的業(yè)務(wù)已知,那么通過分析可以知道消息中包含的消息條件,以及處理該消息應(yīng)當(dāng)使用的處理邏輯,所以準(zhǔn)備各個類型的消息作為樣本,通過分析可以確定消息條件和處理邏輯之間的對應(yīng)關(guān)系,進而在消息條件和處理邏輯之間建立對應(yīng)關(guān)系。
[0030]下面以公眾號消息處理為例,來對本發(fā)明進行進一步地的描述。
[0031]公眾號消息處理例如是微信公眾號消息處理。如果是微信公眾號消息處理,則消息是由微信服務(wù)器發(fā)送到公眾號服務(wù)器上,再由公眾號服務(wù)器負(fù)責(zé)對該消息進行邏輯處理。例如:用戶關(guān)注了智能洗衣機微信公眾號,客戶端首先會發(fā)送消息到微信服務(wù)器,微信服務(wù)器再把這條消息轉(zhuǎn)發(fā)給智能洗衣機微信公眾號服務(wù)器。消息為xml形式,并通過超文本傳輸協(xié)議(HyperText Transfer Protocol,簡稱HTTP)發(fā)送的。
[0032]在服務(wù)器側(cè)定義條件生成接口和處理邏輯接口,并設(shè)置消息處理器。
[0033]條件生成接口,用于在消息處理器的控制下,在消息中查找消息條件,并為消息條件生成散列地址。消息條件可以通過Object f inderl =new f inder ()函數(shù)查找,其中finder I為消息條件,finder ()為查詢函數(shù)??梢酝ㄟ^函數(shù)算法hash (finder I)生成消息條件f inderl的散列地址,該散列地址為哈希hash值。
[0034]消息處理器,用于在消息條件finder I和處理邏輯1gi cl (msg)之間建立對應(yīng)關(guān)系,在為消息條件生成的散列地址中存儲消息條件對應(yīng)的處理邏輯。其中,msg表示消息。消息處理器為key-value結(jié)構(gòu),一個消息條件的散列地址對應(yīng)一個處理邏輯,即放入key =f inderl,value = 1gicl。
[0035]處理邏輯接口,用于在消息處理器的控制下,對服務(wù)器接收到的消息執(zhí)行邏輯處理。
[0036]將本發(fā)明分為兩個階段,下面對這兩個階段分別進行說明。
[0037]第一階段,創(chuàng)建散列表階段:
[0038]服務(wù)器接收到的消息的標(biāo)準(zhǔn)格式為:
[0039]<xml>
[0040]<ToUserName><![CDATA[toUser]]></ToUserName>
[0041 ] <FromUserName><![CDATA[fromUs er]]> </FromUs erName >
[0042]<CreateTime>1348831860</CreateTime>
[0043]〈MsgTypeX! [CDATA[text] ]></MsgType>
[0044]〈ContentX![CDATA[this is a test]]></Content>
[0045]<MsgId>1234567890123456</MsgId>
[0046]</xml>
[0047]在該消息格式中,包括MsgType(消息類型)和Event(事件類型),條件生成接口可以通過finder I =new finder (text),在消息中找到消息具體的消息類型和事件類型,并根據(jù)消息類型和事件類型生成散列地址。
[0048]例如:用戶關(guān)注了智能洗衣機微信公眾號,智能洗衣機微信公眾號服務(wù)器服務(wù)器接收到的消息如下:
[0049]<xml>
[0050]<ToUserName><![CDATA[toUser]]></ToUserName>[0051 ] <FromUserName><![CDATA[FromUser]]></FromUserName>
[0052]<CreateTime>123456789</CreateTime>
[0053]〈MsgTypeX! [CDATA[event] ]></MsgType>
[0054]<Event><![CDATA[subscribe]]></Event>
[0055]</xml>
[0056]基于該消息,條件生成接口通過如下方式找到消息條件:
[0057]f inderl =new f inder();
[0058]finderl.put(‘MsgType’,‘event,);
[0059]finderl.put(‘Event,‘subscribe);
[0000]經(jīng)過查找,最終確定消息中的event和subscribe作為觸發(fā)處理邏輯的消息類型和事件類型。消息處理器調(diào)用條件生成接口將消息類型和事件類型組成字符串,并計算該字符串的hash值,作為散列地址。
[0061 ] 根據(jù)消息承載的業(yè)務(wù),當(dāng)消息中的MsgType (消息類型)為event,Event (事件類型)為subscribe時,使用處理邏輯subscribeLogic處理該消息。這時,消息處理器可以在消息條件(event和subscribe)和處理邏輯(subscribeLogic)建立對應(yīng)關(guān)系。消息處理器在消息條件(event和subscribe)的散列地址中存儲處理邏輯(subscribeLogic)。
[0062]第二階段,消息處理階段
[0063]在散列表建立之后,服務(wù)器接收到消息,消息處理器根據(jù)Object f inder2 = newfinder (text)在消息中查找消息條件finder2,根據(jù)消息條件finder2生成散列地址,根據(jù)該散列地址,在散列表中查找消息條件finder2對應(yīng)的處理邏輯,根據(jù)該處理邏輯對消息執(zhí)行邏輯處理。
[0064]本發(fā)明提供了一種消息處理裝置。圖2是根據(jù)本發(fā)明一實施例的消息處理裝置的結(jié)構(gòu)圖。
[0065]所述裝置包括:
[0066]查找模塊210,用于在接收到的消息中,查找消息條件。
[0067]獲取模塊220,用于獲取預(yù)先創(chuàng)建的散列表中,與所述消息條件對應(yīng)的處理邏輯。
[0068]處理模塊230,用于根據(jù)所述處理邏輯,對所述消息執(zhí)行邏輯處理。
[0069]所述裝置還包括創(chuàng)建模塊240;
[0070]創(chuàng)建模塊240,用于在查找模塊在接收到的消息中查找消息條件之前,預(yù)先創(chuàng)建所述散列表。創(chuàng)建模塊240,具體用于預(yù)先建立消息條件和處理邏輯之間的對應(yīng)關(guān)系;為所述消息條件生成散列地址;將所述消息條件對應(yīng)的處理邏輯存儲在所述散列地址中,形成散列表。
[0071]獲取模塊220,用于為查找到的所述消息條件生成散列地址;根據(jù)為查找到的所述消息條件生成的所述散列地址,在預(yù)先創(chuàng)建的散列表中獲取處理邏輯。即在預(yù)先創(chuàng)建的散列表中,獲取所述散列地址指向的處理邏輯。
[0072]所述消息條件包括:消息的屬性信息。所述屬性信息包括:消息類型和事件類型。
[0073]本實施例所述的裝置的功能已經(jīng)在圖1所示的方法實施例中進行了描述,故本實施例的描述中未詳盡之處,可以參見前述實施例中的相關(guān)說明,在此不做贅述。
[0074]盡管為示例目的,已經(jīng)公開了本發(fā)明的優(yōu)選實施例,本領(lǐng)域的技術(shù)人員將意識到各種改進、增加和取代也是可能的,因此,本發(fā)明的范圍應(yīng)當(dāng)不限于上述實施例。
【主權(quán)項】
1.一種消息處理方法,其特征在于,包括: 在接收到的消息中,查找消息條件; 獲取預(yù)先創(chuàng)建的散列表中,與所述消息條件對應(yīng)的處理邏輯; 根據(jù)所述處理邏輯,對所述消息執(zhí)行邏輯處理。2.如權(quán)利要求1所述的方法,其特征在于,創(chuàng)建所述散列表,包括: 預(yù)先建立所述消息條件和所述處理邏輯之間的對應(yīng)關(guān)系; 為所述消息條件生成散列地址; 將所述消息條件對應(yīng)的所述處理邏輯存儲在所述散列地址中,形成散列表。3.如權(quán)利要求2所述的方法,其特征在于,所述獲取預(yù)先創(chuàng)建的散列表中,與所述消息條件對應(yīng)的處理邏輯,包括: 為查找到的所述消息條件生成散列地址; 根據(jù)為查找到的所述消息條件生成的所述散列地址,在預(yù)先創(chuàng)建的散列表中獲取處理邏輯。4.如權(quán)利要求1-3中任一項所述的方法,其特征在于,所述消息條件包括:消息的屬性?目息O5.如權(quán)利要求4所述的方法,其特征在于,所述屬性信息包括:消息類型和事件類型。6.一種消息處理裝置,其特征在于,包括: 查找模塊,用于在接收到的消息中,查找消息條件; 獲取模塊,用于獲取預(yù)先創(chuàng)建的散列表中,與所述消息條件對應(yīng)的處理邏輯; 處理模塊,用于根據(jù)所述處理邏輯,對所述消息執(zhí)行邏輯處理。7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括創(chuàng)建模塊; 所述創(chuàng)建模塊,用于在所述查找模塊在接收到的消息中查找消息條件之前,預(yù)先創(chuàng)建所述散列表; 所述創(chuàng)建模塊,具體用于預(yù)先建立消息條件和處理邏輯之間的對應(yīng)關(guān)系;為所述消息條件生成散列地址;將所述消息條件對應(yīng)的處理邏輯存儲在所述散列地址中,形成散列表。8.如權(quán)利要求7所述的裝置,其特征在于,所述獲取模塊,用于: 為查找到的所述消息條件生成散列地址; 根據(jù)為查找到的所述消息條件生成的所述散列地址,在預(yù)先創(chuàng)建的散列表中獲取處理邏輯。9.如權(quán)利要求6-8中任一項所述的裝置,其特征在于,所述消息條件包括:消息的屬性?目息O10.如權(quán)利要求9所述的裝置,其特征在于,所述屬性信息包括:消息類型和事件類型。
【文檔編號】H04L12/58GK105933208SQ201610334730
【公開日】2016年9月7日
【申請日】2016年5月19日
【發(fā)明人】王毅, 高陽, 王曉燕
【申請人】青島海爾智能家電科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1