[發(fā)明專利]一種消息超時檢測處理方法有效
| 申請?zhí)枺?/td> | 201210544014.0 | 申請日: | 2012-12-14 |
| 公開(公告)號: | CN103067258A | 公開(公告)日: | 2013-04-24 |
| 發(fā)明(設計)人: | 官元峰 | 申請(專利權)人: | 北京思特奇信息技術股份有限公司 |
| 主分類號: | H04L12/58 | 分類號: | H04L12/58 |
| 代理公司: | 北京輕創(chuàng)知識產(chǎn)權代理有限公司 11212 | 代理人: | 楊立 |
| 地址: | 100086 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 消息 超時 檢測 處理 方法 | ||
技術領域
本發(fā)明涉及消息處理技術領域,特別是涉及一種簡單易用的非持久化消息超時檢測處理方法。
背景技術
基于消息類的消息存儲轉(zhuǎn)發(fā),可用于短信網(wǎng)關/業(yè)務接口系統(tǒng)等。在軟件實現(xiàn)的消息處理和轉(zhuǎn)發(fā)系統(tǒng)中,對于有生命周期要求的消息檢查是否達到期末,即超時,在性能要求較高的環(huán)境中應用。
消息存儲方式一般分為持久化存儲和非持久化存儲,前者一般要求保存到磁盤文件或者關系型數(shù)據(jù)庫中,后者則一般保存到系統(tǒng)內(nèi)存中,該方法主要用于非持久化消息存儲中。
在通常的基于消息處理的軟件中,由于消息本身通常有一定的生命周期,所以一般都會要求有檢測消息超時的機制。常用的超時檢測機制有如下的幾類:
1、消息以鏈表方式保存,定時對所有消息進行遍歷,通過消息中的超時時間與當前時間進行比較以判斷是否超時;
2、將消息以二叉樹等形式保存,以超時時間為鍵值,通過定時進行二叉樹查找方式判斷超時;
3、將消息保存在關系型數(shù)據(jù)庫中,在超時時間上建立索引,然后定時以當前時間的條件掃描表中數(shù)據(jù),查詢中超過當前時間的記錄則為超時消息;
以上幾類的超時檢測機制中,第一類方式的優(yōu)勢是實現(xiàn)簡單,但效率最低;第二類方式則相對有較高的效率,也同樣適合于非持久化的消息存儲系統(tǒng)中,但對于有大量相同超時時間的消息在保存上則會存在問題,需要對方法進行擴展,比如節(jié)點改為鏈表,另外一個不利因素則是實現(xiàn)方法較為復雜;而第三類方式一般用于效能要求不高的業(yè)務軟件系統(tǒng)中,并不適合于非持久化存儲的消息管理系統(tǒng),且效率不高。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是提供一種消息超時檢測處理方法,用于解決現(xiàn)有技術中消息超時檢測機制存在的效率不高、方法復雜、適用性不強等問題。
本發(fā)明解決上述技術問題的技術方案如下:一種消息超時檢測處理方法,包括以下步驟:
步驟1,建立一個時間軸數(shù)組,時間軸數(shù)組中任意相鄰的兩個節(jié)點間的時間間隔相等,數(shù)組最左端為時間下界,數(shù)組最右端為時間上界;這里所述的時間間隔即為時間軸數(shù)組的單位長度;
步驟2,在數(shù)組中設置當前時間指針、最小時間指針和最大時間指針,當前時間指針指向存儲當前消息的節(jié)點,最小時間指針指向有消息的最小時間對應的節(jié)點,最大時間指針指向有消息的最大時間對應的節(jié)點;
步驟3,向數(shù)組插入新消息,根據(jù)新消息屬性中超時時間與當前時間的差值,將新消息指針插入到數(shù)組中的目標位置,實時右移當前時間指針,并根據(jù)插入的新消息,更新最大時間指針;
步驟4,若消息在當前時間到超時時間內(nèi)完成處理,則將消息對應的指針從數(shù)組中刪除;若當前時間超過超時時間,該消息還未被處理,則逐個刪除最小時間指針與當前時間指針間的超時消息。
在上述技術方案的基礎上,本發(fā)明還可以做如下改進:
進一步,執(zhí)行步驟1和步驟2還包括對數(shù)組進行初始化,包括:根據(jù)實際情況確定數(shù)組的長度,并執(zhí)行數(shù)組清零,使當前時間指針、最小時間指針、最大時間指針均指向數(shù)組最左端的節(jié)點。
進一步,所述數(shù)組中任意相鄰的兩個節(jié)點間的時間間隔能預先根據(jù)實際情況進行設置。
進一步,所述時間間隔的預設值為1秒。
進一步,所述新消息屬性中的規(guī)定的超時時間能預先進行設置,且其能設置的最小值為時間軸數(shù)組中任意相鄰的兩個節(jié)點間的時間間隔。
進一步,執(zhí)行所述步驟3還包括:若新消息的目標位置超出數(shù)組最右端,則將超出部分的有效數(shù)據(jù)向左移動到數(shù)組最左端,并使最小時間指針指向數(shù)組最左端,否則直接在目標位置插入新消息。
進一步,超出部分的有效數(shù)據(jù)是指:更新后的最小時間指針與最大時間指針間的消息。
進一步,將超出部分的有效數(shù)據(jù)向左移動到數(shù)組最左端時要求:最小時間指針與數(shù)組最左端之間的距離大于或者等于目標位置到最小時間指針的距離。
進一步,將超出部分的有效數(shù)據(jù)向左移動到數(shù)組最左端是通過另外建立一個用于騰挪數(shù)據(jù)的數(shù)組完成的,且該數(shù)組長度大于超出部分有效數(shù)據(jù)的長度。
進一步,所述步驟4中將最小時間指針與當前時間指針間的超時消息逐個刪除包括:若當前時間大于最小時間,則取出數(shù)組最左端的消息,并向右移動最小時間指針;若當前時間小于最小時間,則沒有超時,也向右移動最小時間指針。
本發(fā)明的有益效果主要有以下幾點:
1、數(shù)據(jù)結(jié)構簡單,占用存儲資源極少,甚至可用于嵌入設備;處理流程簡單高效,提高了系統(tǒng)處理性能,且容易擴展;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京思特奇信息技術股份有限公司,未經(jīng)北京思特奇信息技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210544014.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





