專(zhuān)利名稱(chēng):一種及時(shí)消息及時(shí)處理的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息處理技術(shù),特別是涉及一種及時(shí)消息及時(shí)處理的方法及裝置。
背景技術(shù):
消息隊(duì)列(Message Queues)是在消息的傳輸過(guò)程中保存消息的容器,消 息隊(duì)列的主要目的是提供路由并保證消息的傳遞,例如發(fā)送消息時(shí)接收者不 可用,消息隊(duì)列會(huì)保留消息,直到可以成功地傳遞它。消息隊(duì)列是一種最簡(jiǎn)單 的把并行訪(fǎng)問(wèn)變成串行訪(fǎng)問(wèn)的辦法,能夠?qū)崿F(xiàn)消息的異步響應(yīng),進(jìn)而減少了許 多在并行訪(fǎng)問(wèn)中要考慮的資源共享問(wèn)題。而且,在功能擴(kuò)充上也相對(duì)容易,即 只需增加相應(yīng)的消息隊(duì)列及消息處理任務(wù)。因此,消息的異步響應(yīng)提高了系統(tǒng) 性能,并對(duì)消息處理任務(wù)賦予優(yōu)先級(jí),消息處理任務(wù)優(yōu)先級(jí)高則處理消息速度 快。因此,提高消息處理任務(wù)優(yōu)先級(jí)就可以提高其對(duì)應(yīng)的消息隊(duì)列中消息的處 理速度。
然而,通過(guò)提高消息處理任務(wù)優(yōu)先級(jí)并不能區(qū)分對(duì)待其對(duì)應(yīng)的消息隊(duì)列中 不同的消息。在搶占式多任務(wù)的系統(tǒng)中,尤其是在嵌入式系統(tǒng)中,有的業(yè)務(wù)是 受時(shí)間限制的,這些業(yè)務(wù)對(duì)應(yīng)的消息需要及時(shí)處理,如果處理不及時(shí)的話(huà),會(huì) 影響業(yè)務(wù)乃至系統(tǒng)性能。于是,通常稱(chēng)這類(lèi)需要及時(shí)處理的消息為及時(shí)消息, 例如在嵌入式系統(tǒng)中,通過(guò)MSG—Q一FIFO創(chuàng)建先進(jìn)先出(FIFO)的消息隊(duì)列, 而光纖在通信過(guò)程中發(fā)生斷裂,那么上報(bào)光纖斷裂的告警消息要及時(shí)處理,才 能盡快倒換到備用光纖。而有的消息卻沒(méi)有時(shí)間限制或者對(duì)處理的時(shí)間要求不 高,這樣我們就要優(yōu)先處理及時(shí)消息。因此,如果簡(jiǎn)單地按照先進(jìn)先出的方式 來(lái)處理所有的消息,倘若及時(shí)消息分配到待處理消息比較多的消息處理任務(wù)中或優(yōu)先級(jí)比較低的消息處理任務(wù)中,那么就可能導(dǎo)致及時(shí)消息堵死在待處理消 息比較多的消息處理任務(wù)中或低優(yōu)先級(jí)的消息處理任務(wù)中,進(jìn)而導(dǎo)致及時(shí)消息 超時(shí)或者處理不及時(shí),最終導(dǎo)致業(yè)務(wù)受到影響。
可見(jiàn),這種由于只考慮任務(wù)優(yōu)先級(jí)而忽略了消息優(yōu)先級(jí),所導(dǎo)致的及時(shí)消 息不能得到及時(shí)處理的問(wèn)題急需解決,但目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種及時(shí)消息及時(shí)處理的方法及裝 置,有效達(dá)到及時(shí)消息及時(shí)處理的目的。
為達(dá)到上述目的,本發(fā)明公開(kāi)了一種及時(shí)消息及時(shí)處理的方法,創(chuàng)建基于
消息級(jí)別的消息隊(duì)列,該方法包括將待處理的消息劃分為及時(shí)消息和非及時(shí) 消息,并分別將及時(shí)消息和非及時(shí)消息按照消息級(jí)別對(duì)應(yīng)地插入到消息處理任 務(wù)的消息隊(duì)列中;判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息,當(dāng)含有待 處理的及時(shí)消息時(shí),則提高該消息處理任務(wù)的優(yōu)先級(jí);該消息處理任務(wù)再按照 提高后的優(yōu)先級(jí)對(duì)待處理的及時(shí)消息進(jìn)行處理。
其中,所述分別將及時(shí)消息和非及時(shí)消息按照消息級(jí)別對(duì)應(yīng)地插入到消息 處理任務(wù)的消息隊(duì)列中包括對(duì)應(yīng)非及時(shí)消息和及時(shí)消息,分別設(shè)置非及時(shí)消 息和及時(shí)消息的消息級(jí)別參數(shù),并依據(jù)所設(shè)置的消息級(jí)別參數(shù)將非及時(shí)消息對(duì) 應(yīng)地插入到消息隊(duì)列的尾部,將及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列的首部。
上述方法中,所述判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息包括 當(dāng)判斷得到該消息處理任務(wù)中不含有待處理的及時(shí)消息,則進(jìn)一步判斷該消息 處理任務(wù)的優(yōu)先級(jí)是否被提高,如果該消息處理任務(wù)的優(yōu)先級(jí)被提高,該消息 處理任務(wù)的優(yōu)先級(jí)則降至其默認(rèn)優(yōu)先級(jí),再按照默認(rèn)優(yōu)先級(jí)對(duì)待處理的非及時(shí) 消息進(jìn)行處理;如果該消息處理任務(wù)的優(yōu)先級(jí)未被提高,則該消息處理任務(wù)直 接按照原優(yōu)先級(jí)對(duì)待處理的非及時(shí)消息進(jìn)行處理。
其中,所述劃分及時(shí)消息和非及時(shí)消息步驟之后,該方法還包括建立消 息映射表,將待處理的及時(shí)消息命令碼、非及時(shí)消息命令碼與各自對(duì)應(yīng)的消息級(jí)別記錄到消息映射表中;所述判斷消息處理任務(wù)中是否含有待處理的及時(shí)消 息包括根據(jù)待處理消息的命令碼在消息映射表中對(duì)應(yīng)的消息級(jí)別,判斷消息 處理任務(wù)中是否含有待處理的及時(shí)消息。
其中,所述提高該消息處理任務(wù)的優(yōu)先級(jí)包括為每個(gè)消息處理任務(wù)設(shè)定 默認(rèn)優(yōu)先級(jí)和翻轉(zhuǎn)優(yōu)先級(jí),并將消息處理任務(wù)的初始優(yōu)先級(jí)設(shè)置為默認(rèn)優(yōu)先級(jí);
當(dāng)消息處理任務(wù)含有待處理的及時(shí)消息時(shí),將該消息處理任務(wù)的優(yōu)先級(jí)由 默認(rèn)優(yōu)先級(jí)提高到翻轉(zhuǎn)優(yōu)先級(jí);其中,所述翻轉(zhuǎn)優(yōu)先級(jí)高于默認(rèn)優(yōu)先級(jí)。
為實(shí)現(xiàn)上述方法,本發(fā)明提供一種及時(shí)消息及時(shí)處理的裝置,包括消息 隊(duì)列創(chuàng)建模塊、調(diào)度任務(wù)模塊和消息處理任務(wù)模塊;其中,消息隊(duì)列創(chuàng)建模塊, 用于創(chuàng)建基于消息級(jí)別的消息隊(duì)列;調(diào)度任務(wù)模塊,用于將待處理的消息劃分 為及時(shí)消息和非及時(shí)消息,并分別將及時(shí)消息和非及時(shí)消息對(duì)應(yīng)地插入到消息 處理任務(wù)的消息隊(duì)列中,以及用于提高及時(shí)消息及時(shí)處理的消息處理任務(wù)的優(yōu) 先級(jí);消息處理任務(wù)模塊,用于按照消息處理任務(wù)的優(yōu)先級(jí)對(duì)所述調(diào)度任務(wù)模 塊插入的及時(shí)消息進(jìn)行處理。
上述裝置中,所述調(diào)度任務(wù)模塊包括消息分級(jí)單元、第一判斷單元和任 務(wù)調(diào)度單元;其中,消息分級(jí)單元,用于將待處理的消息劃分為及時(shí)消息和非 及時(shí)消息,并分別將及時(shí)消息和非及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列中;第一判 斷單元,用于判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息,并在消息處理 任務(wù)含有待處理的及時(shí)消息時(shí),則通知任務(wù)調(diào)度單元;在消息處理任務(wù)只含有 待處理的非及時(shí)消息時(shí),則通知消息處理任務(wù)模塊;任務(wù)調(diào)度單元,用于根據(jù) 所述第一判斷單元的通知,來(lái)提高及時(shí)消息及時(shí)處理的消息處理任務(wù)的優(yōu)先級(jí)。
其中,所述消息分級(jí)單元具體用于設(shè)置非及時(shí)消息和及時(shí)消息的消息級(jí) 別參數(shù),依據(jù)所設(shè)置的消息級(jí)別參數(shù)將非及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列的尾 部,將及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列的首部;所述任務(wù)調(diào)度單元具體用于 為每個(gè)消息處理任務(wù)設(shè)定默認(rèn)優(yōu)先級(jí)和翻轉(zhuǎn)優(yōu)先級(jí),并將消息處理任務(wù)的初始 優(yōu)先級(jí)設(shè)置為默認(rèn)優(yōu)先級(jí);當(dāng)消息處理任務(wù)含有待處理的及時(shí)消息時(shí),將該消 息處理任務(wù)的優(yōu)先級(jí)由默認(rèn)優(yōu)先級(jí)提高到翻轉(zhuǎn)優(yōu)先級(jí);其中,所述翻轉(zhuǎn)優(yōu)先級(jí)高于默認(rèn)優(yōu)先級(jí)。所述調(diào)度任務(wù)模塊還包括消息映射單元,用于建立消息映 射表,并將待處理的及時(shí)消息命令碼、非及時(shí)消息命令碼與各自對(duì)應(yīng)的消息級(jí) 別記錄到消息映射表中;所述第一判斷單元,具體用于根據(jù)待處理消息的命令 碼在所述消息映射表中對(duì)應(yīng)的消息級(jí)別,判斷消息處理任務(wù)中是否含有待處理 的及時(shí)消息。
上述裝置中,所述消息處理任務(wù)模塊包括第二判斷單元,用于根據(jù)所述 調(diào)度任務(wù)模塊的通知,得知消息處理任務(wù)處理非及時(shí)消息時(shí),判斷該消息處理 任務(wù)的優(yōu)先級(jí)是否被提高,并在該息處理任務(wù)的優(yōu)先級(jí)被提高時(shí),通知優(yōu)先級(jí) 調(diào)整單元;優(yōu)先級(jí)調(diào)整單元,用于根據(jù)所述第二判斷單元的通知,來(lái)維持處理 非及時(shí)消息的消息處理任務(wù)的優(yōu)先級(jí)處于默認(rèn)優(yōu)先級(jí);消息處理單元,用于處 理所述調(diào)度任務(wù)模塊插入的及時(shí)消息和非及時(shí)消息。
由以上技術(shù)方案可以看出,本發(fā)明創(chuàng)建基于消息級(jí)別的消息隊(duì)列,將待處 理的消息劃分為及時(shí)消息和非及時(shí)消息,并通過(guò)將及時(shí)消息插入該消息隊(duì)列的 首部以及提高含有待處理及時(shí)消息的消息處理任務(wù)的優(yōu)先級(jí),來(lái)提高對(duì)及時(shí)消 息的處理速度。如此,本發(fā)明能夠?qū)崿F(xiàn)區(qū)分處理及時(shí)消息與非及時(shí)消息,提高 了系統(tǒng)處理消息的智能性及處理及時(shí)消息的能力,達(dá)到及時(shí)處理及時(shí)消息的目 的。
因此,本發(fā)明提供的這種及時(shí)消息的處理機(jī)制,解決了現(xiàn)有技術(shù)中及時(shí)消 息難以得到及時(shí)處理的問(wèn)題。
圖l為本發(fā)明及時(shí)消息及時(shí)處理的方法實(shí)現(xiàn)流程示意圖; 圖2為本發(fā)明及時(shí)消息及時(shí)處理的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明的基本思想在于創(chuàng)建基于消息級(jí)別的消息隊(duì)列,將待處理的消息 劃分為及時(shí)消息和非及時(shí)消息,并通過(guò)將及時(shí)消息插入該消息隊(duì)列的首部以及提高含有待處理及時(shí)消息的消息處理任務(wù)的優(yōu)先級(jí),來(lái)提高對(duì)及時(shí)消息的處理 速度。
需要說(shuō)明的是,所述消息處理任務(wù)的優(yōu)先級(jí)包括默認(rèn)優(yōu)先級(jí)和翻轉(zhuǎn)優(yōu)先 級(jí),其中,翻轉(zhuǎn)優(yōu)先級(jí)高于默認(rèn)優(yōu)先級(jí)。所述消息處理任務(wù)的優(yōu)先級(jí)在默認(rèn)情 況下設(shè)為默認(rèn)優(yōu)先級(jí),但有待處理的及時(shí)消息時(shí),消息處理任務(wù)的優(yōu)先級(jí)會(huì)從 默認(rèn)優(yōu)先級(jí)提高到翻轉(zhuǎn)優(yōu)先級(jí)。
一般地,搶占式多任務(wù)系統(tǒng)中的實(shí)時(shí)應(yīng)用由一系列互相獨(dú)立又協(xié)同工作的 任務(wù)組成,因此在搶占式多任務(wù)系統(tǒng),尤其是嵌入式系統(tǒng)中,消息隊(duì)列是主要 的通信機(jī)制。例如VxWorks系統(tǒng)的各任務(wù)之間通信主要的機(jī)制是消息隊(duì)列。 消息隊(duì)列允許一定數(shù)量不同長(zhǎng)度的消息進(jìn)行排列。任何任務(wù)或中斷服務(wù)程序 (ISR)都能夠發(fā)送消息給消息隊(duì)列。任何任務(wù)可以從消息隊(duì)列接受消息,多個(gè) 消息處理任務(wù)可以從同一消息隊(duì)列發(fā)送和接受消息。其中,所述嵌入式系統(tǒng)一 般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶(hù)的應(yīng)用程序等 四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能。
具體地,消息隊(duì)列具有^^艮多函數(shù),例如創(chuàng)建并初始化消息隊(duì)列函數(shù),終 止并釋放消息隊(duì)列函數(shù),發(fā)送一個(gè)消息到消息隊(duì)列的函數(shù)以及從消息隊(duì)列接受 一個(gè)消息的函數(shù)等。消息隊(duì)列在創(chuàng)建時(shí)會(huì)設(shè)置一些參數(shù),例如參數(shù)MAX—MSGS 指定了消息隊(duì)列中可允許的最多排列消息數(shù),參數(shù)MAX—MSG—LEN指定了每個(gè) 消息允許的最大字節(jié)數(shù)。而參數(shù)MSG—Q—PRIORITY指定了消息隊(duì)列中各消息的 優(yōu)先級(jí)。其中,所述消息的優(yōu)先級(jí)根據(jù)消息級(jí)別而定,例如及時(shí)消息的優(yōu)先 級(jí)高于非及時(shí)消息的優(yōu)先級(jí),因此該及時(shí)消息會(huì)位于消息隊(duì)列首部。
為使本發(fā)明上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具 體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。下面以嵌入式系統(tǒng)進(jìn)行及時(shí)消息的處 理為例,來(lái)說(shuō)明一下本發(fā)明及時(shí)消息及時(shí)處理的方法。參照?qǐng)Dl,示出了本發(fā)明 及時(shí)消息及時(shí)處理的方法實(shí)現(xiàn)流程,主要包括如下步驟
步驟101,創(chuàng)建基于消息級(jí)別的消息隊(duì)列;
本實(shí)施例中的消息隊(duì)列不同于一般的先進(jìn)先出消息隊(duì)列,這里, 建的是基于消息級(jí)別的消息隊(duì)列,在嵌入式系統(tǒng)初始化時(shí),通過(guò)調(diào)用消息隊(duì)列的創(chuàng)建
函數(shù)來(lái)創(chuàng)建消息隊(duì)列。即根據(jù)消息級(jí)別,將消息插入到該消息隊(duì)列的尾部, 或插入到該消息隊(duì)列的首部,以此來(lái)區(qū)分對(duì)待不同級(jí)別的消息,如及時(shí)消息和 非及時(shí)消息等。例如在VxWorks操作系統(tǒng)中,使用MSG—Q—PRIORITY創(chuàng)建得 到的是基于消息級(jí)別的消息隊(duì)列。其中,所述消息級(jí)別一般指將消息劃分為 及時(shí)消息和非及時(shí)消息。
步驟102,調(diào)度任務(wù)接收消息并將接收到的消息劃分為及時(shí)消息和非及時(shí)消 息,并分別將及時(shí)消息和非及時(shí)消息按照消息級(jí)別對(duì)應(yīng)地插入到消息處理任務(wù) 的消息隊(duì)列中;
其中,根據(jù)消息的重要性、及時(shí)性等,調(diào)度任務(wù)將接收到的消息,如告警 消息和底層的性能消息等,劃分為及時(shí)(Urgent)消息和非及時(shí)(Normal)消 息,及時(shí)消息的消息級(jí)別高于非及時(shí)消息的消息級(jí)別。如此,以便在向消息處 理任務(wù)分發(fā)消息時(shí),將及時(shí)消息和非及時(shí)消息按照消息級(jí)別對(duì)應(yīng)地插入到消息 處理任務(wù)的消息隊(duì)列中,也就是說(shuō),將消息級(jí)別高的排在消息隊(duì)列的首部,將 消息級(jí)別低的排在消息隊(duì)列的尾部,即如果是非及時(shí)消息就將其對(duì)應(yīng)地插入 到消息隊(duì)列的尾部,如果是及時(shí)消息就將其對(duì)應(yīng)地插入到消息隊(duì)列的首部。例 如在基于優(yōu)先級(jí)的消息隊(duì)列中,調(diào)度任務(wù)在向消息處理任務(wù)分發(fā)消息時(shí),通 過(guò)設(shè)置非及時(shí)消息的消息級(jí)別參數(shù)為MSG—PRI一NORMAL,來(lái)將非及時(shí)消息插 入到該消息處理任務(wù)的消息隊(duì)列尾部;通過(guò)設(shè)置及時(shí)消息的消息級(jí)別參數(shù)為 MSG_PRI_URGENT,來(lái)將及時(shí)消息插入到該消息處理任務(wù)的消息隊(duì)列首部。 消息處理任務(wù)可以從消息隊(duì)列接受消息,多個(gè)消息處理任務(wù)可以從同一消息隊(duì) 列發(fā)送和接受消息;另外,每個(gè)消息處理任務(wù)也可以有一個(gè)自身的消息隊(duì)列。
另外,本實(shí)施例中,還會(huì)建立消息映射表,以便于在調(diào)度任務(wù)過(guò)程中判斷 消息處理任務(wù)中的消息是及時(shí)消息還是非及時(shí)消息。該消息映射表中記錄的消 息命令碼與消息級(jí)別之間的映射關(guān)系,即在劃分及時(shí)消息和非及時(shí)消息時(shí),
將劃分消息級(jí)別后的待處理消息的命令碼與對(duì)應(yīng)的消息級(jí)別記錄到消息映射表 中。步驟103,調(diào)度任務(wù)判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息,如果 含有待處理的及時(shí)消息,則執(zhí)行步驟104;如果不含有待處理的及時(shí)消息,則執(zhí) 4亍步驟105;
在本步驟中,調(diào)度任務(wù)根據(jù)代表消息級(jí)別的命令碼,并通過(guò)該命令碼在映 射表中對(duì)應(yīng)的是及時(shí)消息還是非及時(shí)消息,來(lái)判斷消息處理任務(wù)中的消息是及 時(shí)消息還是非及時(shí)消息。例如接收到的某消息的命令碼為A,,在映射表中規(guī) 定l則代表及時(shí)消息,O代表非及時(shí)消息,而命令碼A,對(duì)應(yīng)的是l,于是,可知命 令碼為A,的某消息為及時(shí)消息。
步驟104,調(diào)度任務(wù)提高含有待處理及時(shí)消息的消息處理任務(wù)的優(yōu)先級(jí),然 后執(zhí)行步驟107;
本實(shí)施例中,等待消息的消息處理任務(wù)按照優(yōu)先級(jí)規(guī)則排列,并為每個(gè)消 息處理任務(wù)設(shè)置兩個(gè)優(yōu)先級(jí),即默認(rèn)優(yōu)先級(jí)和翻轉(zhuǎn)優(yōu)先級(jí),其中,翻轉(zhuǎn)優(yōu)先 級(jí)高于默認(rèn)優(yōu)先級(jí)。而且,將消息處理任務(wù)的初始優(yōu)先級(jí)設(shè)置為默認(rèn)優(yōu)先級(jí), 當(dāng)消息處理任務(wù)要處理及時(shí)消息時(shí),調(diào)度任務(wù)會(huì)將有待處理及時(shí)消息的消息處 理任務(wù)的優(yōu)先級(jí)提高到比其他沒(méi)有待處理及時(shí)消息的消息處理任務(wù)的優(yōu)先級(jí)都 高的級(jí)別。
具體來(lái)講,在接收到及時(shí)消息時(shí),嵌入式系統(tǒng)會(huì)通過(guò)調(diào)度任務(wù)來(lái)調(diào)度含有 待處理及時(shí)消息的消息處理任務(wù),以提高該消息處理任務(wù)的優(yōu)先級(jí)。主要是根 據(jù)基于消息的優(yōu)先級(jí)天花板算法,嵌入式系統(tǒng)通過(guò)調(diào)度任務(wù)的方式將有待處理 及時(shí)消息的消息處理任務(wù)的優(yōu)先級(jí)提高到翻轉(zhuǎn)優(yōu)先級(jí)。因此,本實(shí)施例設(shè)定系 統(tǒng)中調(diào)度任務(wù)的優(yōu)先級(jí)最高,即高于其它消息處理任務(wù)的優(yōu)先級(jí),如此是為了 避免嵌入式系統(tǒng)接收的消息,尤其是及時(shí)消息得不到及時(shí)地分發(fā)。這里,設(shè)定 消息處理任務(wù)的優(yōu)先級(jí)滿(mǎn)足如下條件
M, <M2<M3<.. <MX<N, <N2<N3<... <NX<T
其中,Mx和Nx分別為消息處理任務(wù)x的默認(rèn)優(yōu)先級(jí)和含有待處理及時(shí)消息
時(shí)的翻轉(zhuǎn)優(yōu)先級(jí),T為調(diào)度任務(wù)的優(yōu)先級(jí)。那么,消息處理任務(wù)在處理一般的
消息、即非及時(shí)消息時(shí),則處于默認(rèn)優(yōu)先級(jí);而當(dāng)有及時(shí)消息要處理時(shí),消息處理任務(wù)的優(yōu)先級(jí)會(huì)被調(diào)度任務(wù)調(diào)度到翻轉(zhuǎn)優(yōu)先級(jí)。其中,將調(diào)度任務(wù)的優(yōu)先 級(jí)設(shè)定為最高,便于調(diào)度任務(wù)能夠優(yōu)先、及時(shí)地將含有待處理及時(shí)消息的消息 處理任務(wù)的優(yōu)先級(jí)提高至該消息處理任務(wù)的翻轉(zhuǎn)優(yōu)先級(jí)。因此,調(diào)度任務(wù)能夠 根據(jù)消息級(jí)別將消息插入到消息隊(duì)列,并且能夠提高含有待處理及時(shí)消息的消 息處理任務(wù)的優(yōu)先級(jí)。
例如告警消息處理任務(wù)和底層性能消息處理任務(wù)的默認(rèn)優(yōu)先級(jí)分別為100 和80,翻轉(zhuǎn)優(yōu)先級(jí)分別為120和110。其中,規(guī)定默認(rèn)優(yōu)先級(jí)和翻轉(zhuǎn)優(yōu)先級(jí)的婆t 字越大,代表對(duì)應(yīng)的優(yōu)先級(jí)越高。當(dāng)?shù)讓有阅芟⑻幚砣蝿?wù)含有待處理的及時(shí) 消息時(shí),將該底層性能消息處理任務(wù)的優(yōu)先級(jí)提高到其翻轉(zhuǎn)優(yōu)先級(jí)、即IIO,此 時(shí)該底層性能消息處理任務(wù)的翻轉(zhuǎn)優(yōu)先級(jí)高于告警消息處理任務(wù)的默認(rèn)優(yōu)先級(jí) 100,則該底層性能消息處理任務(wù)中的及時(shí)消息會(huì)先于告警消息處理任務(wù)而得到 及時(shí)處理。當(dāng)然,如果該告警消息處理任務(wù)和底層性能消息處理任務(wù)中都含有 及時(shí)消息,那么這兩個(gè)消息處理任務(wù)都會(huì)提高到翻轉(zhuǎn)優(yōu)先級(jí),此時(shí)告警消息處 理任務(wù)的翻轉(zhuǎn)優(yōu)先級(jí)120高于該底層性能消息處理任務(wù)的翻轉(zhuǎn)優(yōu)先級(jí)110,此時(shí), 依然優(yōu)先處理該告警消息處理任務(wù)中的及時(shí)消息。
步驟105,消息處理任務(wù)判斷其默認(rèn)優(yōu)先級(jí)是否被改變,如果被改變,則執(zhí) 行步驟106;如果未^C改變,則"f丸行步驟107;
步驟106,消息處理任務(wù)的優(yōu)先級(jí)從翻轉(zhuǎn)優(yōu)先級(jí)降回默認(rèn)優(yōu)先級(jí),然后執(zhí)行 步驟107;
當(dāng)處理完所有及時(shí)消息以后,消息處理任務(wù)要檢查自己的優(yōu)先級(jí)是否被改 變,如果被改變,消息處理任務(wù)的優(yōu)先級(jí)則會(huì)降回默認(rèn)優(yōu)先級(jí)。如果未被改變, 則該消息處理任務(wù)的優(yōu)先級(jí)即為默認(rèn)優(yōu)先級(jí),不必調(diào)動(dòng)。
步驟107,消息處理任務(wù)按照消息處理任務(wù)的優(yōu)先級(jí)對(duì)待處理的消息進(jìn)行處理。
步驟107中,如果是含有待處理及時(shí)消息的消息處理任務(wù),則是按照提高后 的優(yōu)先級(jí)對(duì)待處理的及時(shí)消息進(jìn)行處理;消息處理任務(wù)在對(duì)非及時(shí)消息進(jìn)行處 理時(shí),如果該消息處理任務(wù)的優(yōu)先級(jí)未被提高,則是按照原優(yōu)先級(jí)對(duì)待處理的非及時(shí)消息進(jìn)行處理;如果該消息處理任務(wù)的優(yōu)先級(jí);波提高了,則先將自身的 優(yōu)先級(jí)則降至其默認(rèn)優(yōu)先級(jí),再按照默認(rèn)優(yōu)先級(jí)對(duì)待處理的非及時(shí)消息進(jìn)行處 理。
對(duì)于上述的各實(shí)施例,.為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合, 但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)?依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。
為實(shí)現(xiàn)上述方法,本發(fā)明還提供一種及時(shí)消息及時(shí)處理的裝置,如圖2所示, 包括消息隊(duì)列創(chuàng)建模塊201、調(diào)度任務(wù)模塊202和消息處理任務(wù)模塊203;其中,
消息隊(duì)列創(chuàng)建模塊201 ,用于創(chuàng)建基于消息級(jí)別的消息隊(duì)列;
調(diào)度任務(wù)模塊202,用于將待處理的消息劃分為及時(shí)消息和非及時(shí)消息,并 分別將及時(shí)消息和非及時(shí)消息對(duì)應(yīng)地插入到消息處理任務(wù)的消息隊(duì)列中,以及 用于提高含有待處理及時(shí)消息的消息處理任務(wù)的優(yōu)先級(jí);
消息處理任務(wù)模塊203 ,用于按照消息處理任務(wù)的優(yōu)先級(jí)對(duì)所述調(diào)度任務(wù)模 塊插入的及時(shí)消息進(jìn)^f亍處理。
上述裝置中,所述調(diào)度任務(wù)模塊202包括消息分級(jí)單元、第一判斷單元和 任務(wù)調(diào)度單元;其中,
消息分級(jí)單元,用于將待處理的消息劃分為及時(shí)消息和非及時(shí)消息,并分 別將及時(shí)消息和非及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列中;
第一判斷單元,用于判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息,并 在消息處理任務(wù)含有待處理的及時(shí)消息時(shí),則通知任務(wù)調(diào)度單元;在消息處理 任務(wù)只含有待處理的非及時(shí)消息時(shí),則通知所述消息處理任務(wù)模塊203;
任務(wù)調(diào)度單元,用于根據(jù)所述第一判斷單元的通知,來(lái)提高及時(shí)消息及時(shí) 處理的消息處理任務(wù)的優(yōu)先級(jí)。
所述消息分級(jí)單元具體用于設(shè)置非及時(shí)消息和及時(shí)消息的消息級(jí)別參數(shù), 依據(jù)所設(shè)置的消息級(jí)別參數(shù)將非及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列的尾部,將及 時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列的首部。
其中,所述調(diào)度任務(wù)模塊202還包括消息映射單元,用于建立消息映射表,并將待處理的及時(shí)消息命令碼、非及時(shí)消息命令碼與各自對(duì)應(yīng)的消息級(jí)別記錄
到消息映射表中;而第一判斷單元,具體用于根據(jù)待處理消息的命令碼在所述 消息映射表中對(duì)應(yīng)的消息級(jí)別,判斷消息處理任務(wù)中是否含有待處理的及時(shí)消 息。
所述任務(wù)調(diào)度單元具體用于為每個(gè)消息處理任務(wù)設(shè)定默認(rèn)優(yōu)先級(jí)和翻轉(zhuǎn) 優(yōu)先級(jí),并將消息處理任務(wù)的初始優(yōu)先級(jí)設(shè)置為默認(rèn)優(yōu)先級(jí);當(dāng)消息處理任務(wù) 含有待處理的及時(shí)消息時(shí),將該消息處理任務(wù)的優(yōu)先級(jí)由默認(rèn)優(yōu)先級(jí)提高到翻 轉(zhuǎn)優(yōu)先級(jí);其中,所述翻轉(zhuǎn)優(yōu)先級(jí)高于默認(rèn)優(yōu)先級(jí)。
上述裝置中,所述消息處理任務(wù)模塊203包括
第二判斷單元,用于根據(jù)所述調(diào)度任務(wù)模塊202的通知,得知消息處理任務(wù) 處理非及時(shí)消息時(shí),判斷該消息處理任務(wù)的優(yōu)先級(jí)是否被提高,并在該息處理 任務(wù)的優(yōu)先級(jí)被提高時(shí),通知優(yōu)先級(jí)調(diào)整單元;
優(yōu)先級(jí)調(diào)整單元,用于根據(jù)所述第二判斷單元的通知,來(lái)維持處理非及時(shí) 消息的消息處理任務(wù)的優(yōu)先級(jí)處于默認(rèn)優(yōu)先級(jí);
消息處理單元,用于處理所述調(diào)度任務(wù)模塊202插入的及時(shí)消息和非及時(shí)消息。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳 述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述即可。以上所述,僅為本發(fā)明的較 佳實(shí)施例而已,只是用來(lái)說(shuō)明和解釋本發(fā)明,并非用于限定本發(fā)明的保護(hù)范圍。 在本發(fā)明的精神和權(quán)利要求保護(hù)范圍之內(nèi),對(duì)本發(fā)明所作的任何修改、等同替 換,都落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種及時(shí)消息及時(shí)處理的方法,其特征在于,創(chuàng)建基于消息級(jí)別的消息隊(duì)列,該方法包括將待處理的消息劃分為及時(shí)消息和非及時(shí)消息,并分別將及時(shí)消息和非及時(shí)消息按照消息級(jí)別對(duì)應(yīng)地插入到消息處理任務(wù)的消息隊(duì)列中;判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息,當(dāng)含有待處理的及時(shí)消息時(shí),則提高該消息處理任務(wù)的優(yōu)先級(jí);該消息處理任務(wù)再按照提高后的優(yōu)先級(jí)對(duì)待處理的及時(shí)消息進(jìn)行處理。
2、 根據(jù)權(quán)利要求l所述的及時(shí)消息及時(shí)處理的方法,其特征在于,所述分 別將及時(shí)消息和非及時(shí)消息按照消息級(jí)別對(duì)應(yīng)地插入到消息處理任務(wù)的消息隊(duì) 列中包括對(duì)應(yīng)非及時(shí)消息和及時(shí)消息,分別設(shè)置非及時(shí)消息和及時(shí)消息的消息級(jí)別 參數(shù),并依據(jù)所設(shè)置的消息級(jí)別參數(shù)將非及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列的尾 部,將及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列的首部。
3、 根據(jù)權(quán)利要求1或2所述的及時(shí)消息及時(shí)處理的方法,其特征在于,所述 判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息包括當(dāng)判斷得到該消息處理任務(wù)中不含有待處理的及時(shí)消息,則進(jìn)一步判斷該 消息處理任務(wù)的優(yōu)先級(jí)是否被提高,如果該消息處理任務(wù)的優(yōu)先級(jí)被提高,該 消息處理任務(wù)的優(yōu)先級(jí)則降至其默認(rèn)優(yōu)先級(jí),再按照默認(rèn)優(yōu)先級(jí)對(duì)待處理的非 及時(shí)消息進(jìn)4于處理;如果該消息處理任務(wù)的優(yōu)先級(jí)未被提高,則該消息處理任務(wù)直接按照原優(yōu) 先級(jí)對(duì)待處理的非及時(shí)消息進(jìn)行處理。
4、 根據(jù)權(quán)利要求1或2所述的及時(shí)消息及時(shí)處理的方法,其特征在于,所述 劃分及時(shí)消息和非及時(shí)消息步驟之后,該方法還包括建立消息映射表,將待處理的及時(shí)消息命令碼、非及時(shí)消息命令碼與各自 對(duì)應(yīng)的消息級(jí)別記錄到消息映射表中;所述判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息包括根據(jù)待處理消息的命令碼在消息映射表中對(duì)應(yīng)的消息級(jí)別,判斷消息處理 任務(wù)中是否含有待處理的及時(shí)消息。
5、 根據(jù)權(quán)利要求1或2所述的及時(shí)消息及時(shí)處理的方法,其特征在于,所述 提高該消息處理任務(wù)的優(yōu)先級(jí)包括為每個(gè)消息處理任務(wù)設(shè)定默認(rèn)優(yōu)先級(jí)和翻轉(zhuǎn)優(yōu)先級(jí),并將消息處理任務(wù)的 初始優(yōu)先級(jí)設(shè)置為默認(rèn)優(yōu)先級(jí);當(dāng)消息處理任務(wù)含有待處理的及時(shí)消息時(shí),將該消息處理任務(wù)的優(yōu)先級(jí)由 默認(rèn)優(yōu)先級(jí)提高到翻轉(zhuǎn)優(yōu)先級(jí);其中,所述翻轉(zhuǎn)優(yōu)先級(jí)高于默認(rèn)優(yōu)先級(jí)。
6、 一種及時(shí)消息及時(shí)處理的裝置,其特征在于,包括消息隊(duì)列創(chuàng)建模塊、 調(diào)度任務(wù)模塊和消息處理任務(wù)模塊;其中,消息隊(duì)列創(chuàng)建模塊,用于創(chuàng)建基于消息級(jí)別的消息隊(duì)列;調(diào)度任務(wù)模塊,用于將待處理的消息劃分為及時(shí)消息和非及時(shí)消息,并分別將及時(shí)消息和非及時(shí)消息對(duì)應(yīng)地插入到消息處理任務(wù)的消息隊(duì)列中,以及用于提高及時(shí)消息及時(shí)處理的消息處理任務(wù)的優(yōu)先級(jí);消息處理任務(wù)模塊,用于按照消息處理任務(wù)的優(yōu)先級(jí)對(duì)所述調(diào)度任務(wù)模塊插入的及時(shí)消息進(jìn)行處理。
7、 根據(jù)權(quán)利要求6所述的及時(shí)消息及時(shí)處理的裝置,其特征在于,所述調(diào) 度任務(wù)^f莫塊包括消息分級(jí)單元、第一判斷單元和任務(wù)調(diào)度單元;其中,消息分級(jí)單元,用于蔣待處理的消息劃分為及時(shí)消息和非及時(shí)消息,并分 別將及時(shí)消息和非及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列中;第一判斷單元,用于判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息,并 在消息處理任務(wù)含有4寺處理的及時(shí)消息時(shí),則通知任務(wù)調(diào)度單元;在消息處理 任務(wù)只含有待處理的非及時(shí)消息時(shí),則通知消息處理任務(wù)^f莫塊;任務(wù)調(diào)度單元,用于根據(jù)所述第一判斷單元的通知,來(lái)提高及時(shí)消息及時(shí) 處理的消息處理任務(wù)的優(yōu)先級(jí)。
8、 根據(jù)權(quán)利要求7所述的及時(shí)消息及時(shí)處理的裝置,其特征在于,所述消 息分級(jí)單元具體用于設(shè)置非及時(shí)消息和及時(shí)消息的消息級(jí)別參數(shù),依據(jù)所設(shè)置的消息級(jí)別參數(shù) 將非及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì)列的尾部,將及時(shí)消息對(duì)應(yīng)地插入到消息隊(duì) 列的首部;所述任務(wù)調(diào)度單元具體用于為每個(gè)消息處理^f壬務(wù)設(shè)定默認(rèn)優(yōu)先級(jí)和翻轉(zhuǎn)優(yōu)先級(jí),并將消息處理任務(wù)的 初始優(yōu)先級(jí)設(shè)置為默認(rèn)優(yōu)先級(jí);當(dāng)消息處理任務(wù)含有待處理的及時(shí)消息時(shí),將該消息處理任務(wù)的優(yōu)先級(jí)由 默認(rèn)優(yōu)先級(jí)提高到翻轉(zhuǎn)優(yōu)先級(jí);其中,所述翻轉(zhuǎn)優(yōu)先級(jí)高于默認(rèn)優(yōu)先級(jí)。
9、 根據(jù)權(quán)利要求7或8所述的及時(shí)消息及時(shí)處理的裝置,其特征在于,所述 調(diào)度任務(wù)模塊還包括消息映射單元,用于建立消息映射表,并將待處理的及時(shí)消息命令碼、非 及時(shí)消息命令碼與各自對(duì)應(yīng)的消息級(jí)別記錄到消息映射表中;所述第一判斷單元,具體用于根據(jù)待處理消息的命令碼在所述消息映射表 中對(duì)應(yīng)的消息級(jí)別,判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息。
10、 根據(jù)權(quán)利要求6所述的及時(shí)消息及時(shí)處理的裝置,其特征在于,所述消 息處理任務(wù)模塊包括第二判斷單元,用于根據(jù)所述調(diào)度任務(wù)模塊的通知,得知消息處理任務(wù)處 理非及時(shí)消息時(shí),判斷該消息處理任務(wù)的優(yōu)先級(jí)是否被提高,并在該息處理任 務(wù)的優(yōu)先級(jí)被提高時(shí),通知優(yōu)先級(jí)調(diào)整單元;優(yōu)先級(jí)調(diào)整單元,用于才艮據(jù)所述第二判斷單元的通知,來(lái)維持處理非及時(shí) 消息的消息處理任務(wù)的優(yōu)先級(jí)處于默認(rèn)優(yōu)先級(jí);消息處理單元,用于處理所述調(diào)度任務(wù)模塊插入的及時(shí)消息和非及時(shí)消息。
全文摘要
本發(fā)明公開(kāi)了一種及時(shí)消息及時(shí)處理的方法,創(chuàng)建基于消息級(jí)別的消息隊(duì)列,該方法包括將待處理的消息劃分為及時(shí)消息和非及時(shí)消息,并分別將及時(shí)消息和非及時(shí)消息對(duì)應(yīng)地插入到消息處理任務(wù)的消息隊(duì)列中;判斷消息處理任務(wù)中是否含有待處理的及時(shí)消息,當(dāng)含有待處理的及時(shí)消息時(shí),則提高該消息處理任務(wù)的優(yōu)先級(jí);該消息處理任務(wù)再按照提高后的優(yōu)先級(jí)對(duì)待處理的及時(shí)消息進(jìn)行處理。相應(yīng)地,本發(fā)明提供一種及時(shí)消息及時(shí)處理的裝置,包括消息隊(duì)列創(chuàng)建模塊、調(diào)度任務(wù)模塊和消息處理任務(wù)模塊。因此,通過(guò)本發(fā)明能夠有效達(dá)到及時(shí)消息及時(shí)處理的目的。
文檔編號(hào)H04L29/08GK101582786SQ20091008706
公開(kāi)日2009年11月18日 申請(qǐng)日期2009年6月17日 優(yōu)先權(quán)日2009年6月17日
發(fā)明者陳錦威 申請(qǐng)人:中興通訊股份有限公司