两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

消息隊列中的消息處理方法

文檔序號:7716256閱讀:238來源:國知局
專利名稱:消息隊列中的消息處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)字電視領(lǐng)域,尤其是涉及應(yīng)用于數(shù)字電視的消息隊列中的消息處理方法。
背景技術(shù)
在當前數(shù)字電視軟件開發(fā)中,一般用的都是基于多任務(wù)的消息處理方式。隨著數(shù) 字電視系統(tǒng)的日益繁雜,需要處理的消息越來越多。通常,需要處理的消息以隊列的形式維 持在系統(tǒng)中。目前處理消息的方式基本上是基于先入先出,逐個處理的方式。目前,消息的 屬性表現(xiàn)為其處理狀態(tài)屬性消息的類型和消息數(shù)據(jù),這些屬性在消息被取出來處理時會 被使用。 消息的先入先出機制雖然十分"公平",但是無法應(yīng)對一些突發(fā)的事件。例如當處 理消息的任務(wù)所占用的時間過長,處理任務(wù)來不及處理消息隊列的消息,或者消息發(fā)送太 頻繁的時候經(jīng)常出現(xiàn)系統(tǒng)響應(yīng)不及時,導致使用者的操作阻塞或者操作被丟失的情況。
還有可能在消息隊列中存在的消息數(shù)量過長,某些對系統(tǒng)來說相對重要的消息被 前一個消息阻塞,中間狀態(tài)被不斷的處理,傳統(tǒng)的清除隊列的方法使得重要消息被清空。一 種解決方法是使用不同的消息隊列管理不同類型或者不同重要程度的消息。但是多隊列處 理的方式會丟失消息的先后邏輯順序,給程序設(shè)計帶來了復雜度和出錯概率,提高了對程 序員設(shè)計多任務(wù)邏輯順序的要求。

發(fā)明內(nèi)容
因此,本發(fā)明的一個目的是提供一種消息隊列中的消息處理方法,可以將許多消 息放入同一個消息隊列中處理而不用擔心消息被阻塞或者由于處理任務(wù)優(yōu)先級的不同而 造成的邏輯問題。 本發(fā)明提供一種消息隊列中的消息處理方法,包括以下步驟將消息放入一消息 隊列中。為該消息分配生存屬性和生存周期,且在該消息存在于該消息隊列期間位置該生 存屬性和生存周期,其中該生存屬性確定消息進入消息隊列時對消息隊列中的其他消息產(chǎn) 生的影響,并確定消息在消息隊列中所處的位置;該生存周期表示消息未被處理而存在于 該消息隊列中的時間。根據(jù)該生存屬性和該生存周期更新該消息隊列。 在本發(fā)明的一實施例中,根據(jù)該消息的預定類型為該消息分配生存屬性和生存周 期。 在本發(fā)明的-
響包括保留或清除。
在本發(fā)明的-
應(yīng)清除的其他消息。
在本發(fā)明的-
排列消息順序。
-實施例中,消息進入消息隊列時對消息隊列中的其他消息產(chǎn)生的影
-實施例中,更新該消息隊列包括清除由當前消息的生存屬性確定
-實施例中,更新該消息隊列包括根據(jù)由當前消息的生存屬性重新
在本發(fā)明的一實施例中,更新該消息隊列包括根據(jù)維護的生存周期清除到期的 消息。 本發(fā)明由于采用以上技術(shù)方案,使之與現(xiàn)有技術(shù)相比,只使用一個消息隊列來管 理消息,通過定義合適的生存屬性和生存周期,可進行不同緊急程度和重要程度的消息管 理,從而可實現(xiàn)包括優(yōu)先處理緊急消息、減輕系統(tǒng)消息負荷的一個或多個目標。


為讓本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,以下結(jié)合附圖對本發(fā)明的具 體實施方式作詳細說明,其中 圖1示出根據(jù)本發(fā)明一實施例的消息隊列中的消息處理機制。
圖2示出消息隊列中的消息生存屬性和生存周期實例。
圖3示出消息隊列中的消息處理實例。
具體實施例方式
在下述的實施例中,為各種消息設(shè)定了生存屬性,并可設(shè)定生存周期,來管理消息 隊列中的消息。通過生存屬性,可以使不同緊急程度的消息得到不同的對待,從而緊急的消 息能夠得到優(yōu)先的處理。并且,考慮到某些消息的頻繁發(fā)送導致的阻塞,消息生存屬性可設(shè) 置為對隊列中的其他消息的生存產(chǎn)生影響。通過生存周期,某些長時間未得到處理的消息 可從隊列中清除,以騰出隊列空間。 在本發(fā)明的實施例中,消息的生存屬性是指消息存在于消息隊列中的屬性。該屬 性可決定消息進入消息隊列時對隊列中的其他消息產(chǎn)生的影響。該屬性還可決定消息在消 息隊列中所處的位置。消息在消息隊列中的任何時候該屬性都存在,當該消息被取出時,生 存屬性可消失。舉例來說,消息進入消息隊列時對消息隊列中的其他消息產(chǎn)生的影響可包 括保留消息和清除消息。保留消息可視為消息對其他消息沒有影響。清除消息的對象可為 一個或多個消息。這些消息可能因為與當前消息在優(yōu)先級上的不同、類型上的關(guān)聯(lián)以及其 他因素而被刪除。 消息的生存周期即消息在消息隊列中的生存周期,它表示消息未被處理而存在于 該消息隊列中的時間。當生存周期結(jié)束的時候,該消息如果還沒有處理則會從消息隊列中 清除。生存周期可為無限長,即永遠不被自動清除。 通過使用消息的生存屬性和生存周期,本發(fā)明的實施例可僅通過一個消息隊列來 管理許多消息,而不必擔心消息被阻塞或者由于處理任務(wù)優(yōu)先級的不同而造成的邏輯問 題。 圖1示出根據(jù)本發(fā)明一實施例的消息隊列中的消息處理機制。在圖1所示的處理 機制中,消息隊列中維持有許多待處理的消息。當系統(tǒng)有新的消息時,在步驟S100,將消息 放入消息隊列中。然后,在步驟S102,為該消息分配生存屬性和生存周期。在此,可識別該 消息在系統(tǒng)環(huán)境中的不同類型,來為消息分配生存屬性和生存周期。舉例來說,相對重要的 消息的生存屬性中,應(yīng)可令該消息處在消息隊列中較前的位置,而一般的消息的生存屬性 則按照通常的規(guī)則,如先進先出來決定位置。類似的,相對重要的消息可具有較長的生存周 期。
4
在步驟S104,維持生存屬性和生存周期,維持的時間為消息存在于消息隊列期間。 當該消息被取出或刪除時,生存屬性可消失。 在步驟S106,更新消息隊列。更新的步驟需要考慮的是當前進入的消息的生存屬 性,以及消息隊列中各消息的生存周期。例如,若當前消息的生存屬性決定當前消息應(yīng)當排 列到隊列中較前的位置甚至首位,則在步驟S108重新排列消息順序。再如,若當前消息的 生存屬性決定應(yīng)當清除隊列中的一個或多個其他消息,則步驟S110執(zhí)行這一操作。并且, 在步驟S112根據(jù)維護各個消息的生存周期清除到期的消息。這些步驟S108-S112并沒有 特定的順序,例如,步驟S112可獨立于步驟S108和S110而定期的執(zhí)行。
生存屬性的定義是靈活的,針對系統(tǒng)中遇到的不同消息處理所帶來問題,定義不 同消息的生存屬性,兩個不同生存屬性的消息之間可能有影響,也有可能一個生存屬性對 所有的消息都有影響。 圖2示出消息隊列中的消息生存屬性和生存周期實例。在圖2的實例中,定義了 六種不同的形狀體,每個形狀體代表一種生存屬性或生存周期的消息。例如生存屬性為的 flush—ke印J的消息進入隊列且會沖掉生存屬性為ke印J或flush—ke印J的消息。
Flush (沖刷)生存屬性是經(jīng)常能用到的一種屬性,表明此類消息最后一個的有效 性最大,根據(jù)flush的范圍可以設(shè)置flush—ke印j, flush_kee2等。 對于一些后臺任務(wù)的消息,可以設(shè)置為帶normal (普通)的帶生存周期的消息,如
果在一定時刻沒有得到處理,則自動清除,避免的過多的消息阻塞消息隊列。 根據(jù)圖2定義的消息的生存屬性和生存周期,在各種不同的消息進入的狀態(tài)下,
消息隊列不斷地進行更新。在狀態(tài)1下,消息隊列中有生存屬性為normal的一個消息、生
存屬性為always的一個消息、以及生存屬性為ke印J的兩個消息。當flush—ke印J消息
進入后,兩個ke印J消息被清除,flush—ke印J消息排在最后。在第二個flush—ke印J
消息進入后,第一個flush—ke印J消息被清除。在500ms的生存周期后,normal消息被清
除。最后,flush—only消息進入后,排在最前,除always消息外,其他消息被清除。 可以理解,當對應(yīng)消息越多時,恰當?shù)亩x不同消息的生存屬性和生存周期,會很
好的減少系統(tǒng)處理消息的負荷。 同時可以看出,緊急消息得到了盡快的處理,特別是對應(yīng)于一些用戶操作的消息, 盡快的處理能提升用戶的感受度。 并且,消息隊列中具有了一定程度上的人工智能,對隊列中的消息能有效管理,均 勻不同消息的載荷,例如flush—ke印J消息不管發(fā)的多頻繁,在隊列中始終只有一個。
在上例中,定義的所有消息都可以放在一個隊列中,除了 flush—only之外,其他 的消息都不會影響隊列中不同屬性消息的先后順序,有效的保證了邏輯上的安全。
下面再列舉消息處理機制的多個應(yīng)用例,以使本發(fā)明的精神更容易理解。
在一應(yīng)用例中,數(shù)字電視機頂盒切臺任務(wù)中,由用戶遙控器按鍵觸發(fā)切臺,切臺轉(zhuǎn) 化為播放消息。當用戶頻繁切臺的時候,如果每一個切臺消息都需要處理的話,有的機頂盒 芯片播放電視是需要一定時間的,那么用戶就會在停止按鍵后不斷的看到切臺操作不斷進 行,直到達到用戶最后一次按鍵的那個臺。如果此時將播放消息改為first—only的話,那 么每次用戶觸發(fā)遙控器按鍵產(chǎn)生first—only的播放消息都會將消息隊列中還未處理的播 放消息清除,將自己放在消息隊列的前面,這樣當用戶停止按鍵的時候就不會看到頻繁的切臺操作,用戶最后切的臺能很快播放出來。 在另一應(yīng)用例中,在切臺過程中,會觸發(fā)CA(Conditional Access)系統(tǒng)進行工作, CA系統(tǒng)作為另外一個任務(wù)也會針對當前切的節(jié)目向消息隊列中發(fā)送CA相關(guān)的消息,這些 消息往往是一些需要顯示的OSD消息,例如會先顯示"節(jié)目未授權(quán)"消息,再顯示"節(jié)目已授 權(quán)"消息,如果頻繁切臺的話,OSD會顯示出許多的CA消息,如果將OSD消息改為生存屬性為 flush—ke印J的消息的話,它能將之前的flush—ke印l的消息清除而又不會影響其他的消 息,同時當新的切臺消息出現(xiàn)的時候又能將其全部清除,因為該消息只屬于上次切的節(jié)目。
因為消息的生存屬性是靈活定義的,可以根據(jù)應(yīng)用的實際需求來設(shè)計,不同的生 存屬性對應(yīng)于消息在消息隊列中存在的不同形態(tài),進入的方式,對其它消息的影響以及在 隊列中的排序方式都會有所不同,但是這些屬性只要是在進入和存在于消息隊列中的時間 內(nèi)存在,而消息被取出后消失,那么它們都屬于本發(fā)明所涉及的生存屬性。
雖然本發(fā)明已以較佳實施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技 術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許的修改和完善,因此本發(fā)明的保護范 圍當以權(quán)利要求書所界定的為準。
權(quán)利要求
一種消息隊列中的消息處理方法,包括以下步驟將消息放入一消息隊列中;為該消息分配生存屬性和生存周期,且在該消息存在于該消息隊列期間位置該生存屬性和生存周期,其中該生存屬性確定消息進入消息隊列時對消息隊列中的其他消息產(chǎn)生的影響,并確定消息在消息隊列中所處的位置;該生存周期表示消息未被處理而存在于該消息隊列中的時間;根據(jù)該生存屬性和該生存周期更新該消息隊列。
2. 如權(quán)利要求1所述的方法,其特征在于,根據(jù)該消息的預定類型為該消息分配生存 屬性和生存周期。
3. 如權(quán)利要求1所述的方法,其特征在于,消息進入消息隊列時對消息隊列中的其他 消息產(chǎn)生的影響包括保留或清除。4
4 如權(quán)利要求3所述的方法,其特征在于,更新該消息隊列包括清除由當前消息的生 存屬性確定應(yīng)清除的其他消息。
5. 如權(quán)利要求3所述的方法,其特征在于,更新該消息隊列包括根據(jù)由當前消息的生 存屬性重新排列消息順序。
6. 如權(quán)利要求1所述的方法,其特征在于,更新該消息隊列包括根據(jù)維護的生存周期 清除到期的消息。
全文摘要
本發(fā)明提供一種消息隊列中的消息處理方法,在該方法中,將消息放入一消息隊列中,然后為該消息分配生存屬性和生存周期,且在該消息存在于該消息隊列期間位置該生存屬性和生存周期,其中該生存屬性確定消息進入消息隊列時對消息隊列中的其他消息產(chǎn)生的影響,并確定消息在消息隊列中所處的位置;該生存周期表示消息未被處理而存在于該消息隊列中的時間。最后,根據(jù)該生存屬性和該生存周期更新該消息隊列。應(yīng)用該方法,可以將許多消息放入同一個消息隊列中處理而不用擔心消息被阻塞或者由于處理任務(wù)優(yōu)先級的不同而造成的邏輯問題。
文檔編號H04L12/56GK101753441SQ20091020063
公開日2010年6月23日 申請日期2009年12月24日 優(yōu)先權(quán)日2009年12月24日
發(fā)明者顧亞平 申請人:上海全景數(shù)字技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
虎林市| 渭源县| 洪江市| 宝鸡市| 壤塘县| 龙岩市| 玉溪市| 丰县| 宜宾县| 杭州市| 曲松县| 江都市| 罗定市| 辽宁省| 微山县| 瑞丽市| 赤城县| 嘉禾县| 屯门区| 来安县| 陆河县| 壤塘县| 四子王旗| 瑞金市| 宜丰县| 济阳县| 昌乐县| 玉山县| 长岛县| 老河口市| 始兴县| 安阳县| 远安县| 宜阳县| 永安市| 清水河县| 湘西| 东山县| 固始县| 桂平市| 晴隆县|