TWI735533B - 訊息管理方法及裝置、訊息預讀方法及裝置 - Google Patents
訊息管理方法及裝置、訊息預讀方法及裝置 Download PDFInfo
- Publication number
- TWI735533B TWI735533B TW106105128A TW106105128A TWI735533B TW I735533 B TWI735533 B TW I735533B TW 106105128 A TW106105128 A TW 106105128A TW 106105128 A TW106105128 A TW 106105128A TW I735533 B TWI735533 B TW I735533B
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- messages
- number range
- range
- queue
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/234—Monitoring or handling of messages for tracking messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/224—Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本發明涉及一種訊息管理方法及裝置、訊息預讀方法及裝置。其中,訊息管理方法包括:在記憶體中記錄訊息佇列中可消費訊息的編號範圍;根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息。本發明實施例通過編號範圍來管理訊息佇列中可消費訊息的編號,在保證訊息先進先出特性的前提下提高了訊息預讀速度,提升了訊息系統性能。
Description
本發明涉及通信領域,尤其涉及一種訊息管理方法及裝置、訊息預讀方法及裝置。
在雲計算中,訊息管理是非常重要的一個環節,它影響著整個雲計算系統的性能。這裡首先說明一下與訊息有關的術語:訊息佇列先進先出:先進入佇列的訊息優先被消費。
訊息可靠性:訊息進入訊息佇列後被持久化到磁碟,保證訊息不會因掉電丟失。
至少消費一次:訊息只有在消費成功後才會被用戶主動刪除,否則可以一直被消費。
活躍的訊息:可以被消費的訊息。
不活躍的訊息:正在被用戶消費的訊息。
刪除的訊息:被用戶主動標誌為已消費的訊息。
訊息的處理過程是,首先,訊息生產者(也可稱為用戶端)將生產的訊息寫入磁碟;在快取為空時,觸發一次預讀操作,將訊息從磁碟預讀到快取中;訊息消費者(也
可稱為用戶端)從快取中讀取出訊息,進行消費。如果訊息消費失敗,則復活訊息到磁碟中。
可靠訊息系統在服務端持久化訊息的讀取狀態,來保證訊息“至少消費一次”。同時需要返回當前訊息佇列中最先入隊的訊息,來保證訊息佇列先進先出的特性。每個進入訊息佇列的訊息都會分配一個訊息編號(也即訊息ID),訊息編號按照訊息入隊的先後有序。如果訊息未能被成功消費,將會再次入隊來確保能夠被再次消費。這樣系統當前的最先入隊的訊息是動態變化的。
一種相關技術中,通過如下方式獲取最先入隊的訊息:在訊息的中繼資料資訊中增加兩個屬性,一個屬性用來記錄訊息是否已經被成功消費,另一個屬性記錄下一個訊息的位置。在訊息被發送到訊息系統中時將訊息的消費狀態設置為“未消費”,在用戶消費獲取訊息後將訊息狀態設置為“正在消費”,用戶成功消費訊息後主動將訊息的狀態設置為“已消費”。服務端記錄當前系統中第一個“未消費”訊息的位置。該相關技術為了保證訊息的先進先出需要順序消費訊息,無法支援併發消費,限制了訊息的處理速度,而且該相關技術中,修改訊息的屬性還會導致隨機寫磁碟,嚴重影響系統的性能。
另一種相關技術中,通過如下方式獲取最先入隊的訊息:將一個訊息佇列分成兩部分,即“未消費的訊息佇列”和“正在消費的訊息佇列”。訊息發送至系統後進入“未消費的訊息佇列”。用戶獲取訊息後,訊息出“未消
費的訊息佇列”,進入“正在消費的訊息佇列”。消費成功後,用戶主動將訊息從“正在消費的訊息佇列”中刪除。否則,在超出約定的時間後,系統會把訊息從“正在消費的訊息佇列”移至“未消費的訊息佇列”的隊尾,使訊息可以被再次消費,來保證訊息至少被消費一次。該相關技術在訊息消費失敗的時候,系統需要把該訊息再次加入“未消費的訊息佇列”的隊尾,會嚴重影響訊息先進先出的特性。
本發明的目的在於提供一種訊息管理方法及裝置、訊息預讀方法及裝置,在保證訊息先進先出特性的前提下,提高訊息預讀速度,提升系統性能。
為實現上述目的,本發明提出了一種訊息管理方法,包括:在記憶體中記錄訊息佇列中可消費訊息的編號範圍;根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息。
進一步地,上述方法還可具有以下特點,該編號範圍包括至少一個編號區間,且任意兩個編號區間不重疊。
進一步地,上述方法還可具有以下特點,該編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列。
進一步地,上述方法還可具有以下特點,該根據該訊
息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息,包括:在從快取中取出該訊息佇列中被預讀到該快取的訊息供用戶端消費之後,縮小該編號範圍,將該取出的訊息的編號排除在該編號範圍之外,且在該訊息佇列中將該取出的訊息標記為不可消費訊息。
進一步地,上述方法還可具有以下特點,該根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息,包括:在用戶端超時未返回消費結果的情況下,擴大該編號範圍,使該超時未返回消費結果的訊息的編號包括在該編號範圍之內,且在該訊息佇列中將該超時未返回消費結果的訊息標記為可消費訊息。
進一步地,上述方法還可具有以下特點,該根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息,包括:在用戶端成功消費訊息的情況下,在該訊息佇列將消費成功的訊息刪除。
進一步地,上述方法還可具有以下特點,該根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息,包括:在從該訊息佇列預讀訊息到快取之後,該編號範圍中的非最大編號區間對應的全部可消費訊息都已被預讀的情況下,從該編號範圍中刪除該非最大編號區間。
本發明實施例的訊息管理方法,通過編號範圍來管理訊息佇列中可消費訊息的編號,在保證訊息先進先出特性的前提下提高了訊息預讀速度,提升了訊息系統性能。
為實現上述目的,本發明還提出了一種訊息管理裝置,包括:記錄模組,用於在記憶體中記錄訊息佇列中可消費訊息的編號範圍;調整模組,用於根據該訊息佇列中訊息的狀態變化情況調整該記錄模組記錄的該編號範圍和管理訊息。
進一步地,上述裝置還可具有以下特點,該編號範圍包括至少一個編號區間,且任意兩個編號區間不重疊。
進一步地,上述裝置還可具有以下特點,該編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列。
進一步地,上述裝置還可具有以下特點,該調整模組包括:縮小單元,用於在從快取中取出該訊息佇列中被預讀到該快取的訊息供用戶端消費之後,縮小該編號範圍,將該取出的訊息的編號排除在該編號範圍之外,且在該訊息佇列中將該取出的訊息標記為不可消費訊息。
進一步地,上述裝置還可具有以下特點,該調整模組包括:擴大單元,用於在用戶端超時未返回消費結果的情況下,擴大該編號範圍,使該超時未返回消費結果的訊息的
編號包括在該編號範圍之內,且在該訊息佇列中將該超時未返回消費結果的訊息標記為可消費訊息。
進一步地,上述裝置還可具有以下特點,該調整模組包括:訊息刪除單元,用於在用戶端成功消費訊息的情況下,在該訊息佇列將消費成功的訊息刪除。
進一步地,上述裝置還可具有以下特點,該調整模組包括:區間刪除單元,用於在從該訊息佇列預讀訊息到快取之後,該編號範圍中的非最大編號區間對應的全部可消費訊息都已被預讀的情況下,從該編號範圍中刪除該非最大編號區間。
本發明實施例的訊息管理裝置,通過編號範圍來管理訊息佇列中可消費訊息的編號,在保證訊息先進先出特性的前提下提高了訊息預讀速度,提升了訊息系統性能。
為實現上述目的,本發明還提出了一種訊息預讀方法,包括:查詢記憶體中記錄的訊息佇列中可消費訊息的編號範圍,確定該訊息佇列中編號最小的N個可消費訊息的編號,N為自然數;根據確定的該N個可消費訊息的編號從該訊息佇列中預讀相應的訊息到快取。
進一步地,上述方法還可具有以下特點,該編號範圍包括至少一個編號區間,且任意兩個編號區間不重疊。
進一步地,上述方法還可具有以下特點,該編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列。
本發明實施例的訊息預讀方法,能夠根據記憶體中按照訊息編號的順序記錄的訊息佇列中可消費訊息的編號範圍快速查詢到訊息佇列中編號最小的設定數目個可消費訊息的編號,並且還保證了訊息的先進先出特性,提高了訊息預讀速度,提升了訊息系統性能。
為實現上述目的,本發明還提出了一種訊息預讀裝置,包括:查詢模組,用於查詢記憶體中記錄的訊息佇列中可消費訊息的編號範圍,確定該訊息佇列中編號最小的N個可消費訊息的編號,N為自然數;預讀模組,用於根據該查詢模組確定的該N個可消費訊息的編號從該訊息佇列中預讀相應的訊息到快取。
進一步地,上述裝置還可具有以下特點,該編號範圍包括至少一個編號區間,且任意兩個編號區間不重疊。
進一步地,上述裝置還可具有以下特點,該編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列。
本發明實施例的訊息預讀裝置,能夠根據記憶體中按照訊息編號的順序記錄的訊息佇列中可消費訊息的編號範圍快速查詢到訊息佇列中編號最小的設定數目個可消費訊息的編號,並且還保證了訊息的先進先出特性,提高了訊
息預讀速度,提升了訊息系統性能。
為實現上述目的,本發明還提出了一種訊息管理設備,包括前述任一項所述的訊息管理裝置。
本發明實施例的訊息管理設備中包括訊息管理裝置,通過編號範圍來管理訊息佇列中可消費訊息的編號,在保證訊息先進先出特性的前提下提高了訊息預讀速度,提升了訊息系統性能。
為實現上述目的,本發明還提出了一種訊息預讀設備,包括前述任一項所述的訊息預讀裝置。
本發明實施例的訊息預讀設備中包括訊息預讀裝置,能夠根據記憶體中按照訊息編號的順序記錄的訊息佇列中可消費訊息的編號範圍快速查詢到訊息佇列中編號最小的設定數目個可消費訊息的編號,並且還保證了訊息的先進先出特性,提高了訊息預讀速度,提升了訊息系統性能。
400‧‧‧訊息管理裝置
410‧‧‧記錄模組
420‧‧‧調整模組
600‧‧‧訊息預讀裝置
610‧‧‧查詢模組
620‧‧‧預讀模組
700‧‧‧訊息管理設備
800‧‧‧訊息預讀設備
900‧‧‧設備
902‧‧‧處理元件
904‧‧‧記憶體
906‧‧‧電源元件
908‧‧‧多媒體元件
910‧‧‧音訊元件
912‧‧‧輸入/輸出介面
914‧‧‧感測器元件
916‧‧‧通信元件
920‧‧‧處理器
圖1為本發明實施例中訊息的處理過程示意圖。
圖2為本發明實施例一中訊息管理方法的流程圖。
圖3為在復活訊息MsgID時對訊息MsgID的前驅游標域進行擴大的示意圖。
圖4為本發明實施例二中訊息管理裝置的結構方塊圖。
圖5為本發明實施例三中訊息預讀方法的流程圖。
圖6為本發明實施例四中訊息預讀裝置的結構方塊
圖。
圖7為本發明實施例五中訊息管理設備的結構方塊圖。
圖8為本發明實施例六中訊息預讀設備的結構方塊圖。
圖9為本發明實施例七中設備900的結構方塊圖。
以下結合圖式對本發明的原理和特徵進行描述,所舉實施例只用於解釋本發明,並非用於限定本發明的範圍。對於所屬技術領域中具有通常知識者來講,在不付出創造性勞動的前提下,根據本發明精神所獲得的所有實施例,都屬於本發明的保護範圍。
圖1為本發明實施例中訊息的處理過程示意圖。如圖1所示,本發明實施例中,訊息的處理過程是:用戶端將生成的訊息寫入磁碟,訊息進入訊息佇列;快取為空時,從磁碟批量獲取N個最先進入訊息佇列的訊息到快取,此為訊息預讀操作;從快取讀取訊息供用戶端進行消費,並在訊息佇列中將被讀取的訊息標記為不可消費訊息;用戶端消費完成後,向伺服器返回消費結果;管理模組根據消費結果處理磁碟中的相應訊息:如果消費成功,則刪除訊息佇列中的相應訊息,如果用戶端超時未返回訊息消費成功的資訊,則認為訊息消費失敗,復
活該訊息,將訊息佇列中的該訊息標記為可消費訊息。
在整個訊息的處理過程中,可以在記憶體中用游標記錄訊息佇列中可消費訊息的編號範圍。
圖2為本發明實施例一中訊息管理方法的流程圖。如圖2所示,本實施例中,訊息管理方法可以包括如下步驟:
步驟S201,在記憶體中記錄訊息佇列中可消費訊息的編號範圍;其中,該編號範圍可以包括至少一個編號區間,且任意兩個編號區間不重疊。
其中,訊息編號代表訊息進入訊息佇列的順序,訊息編號越小,表明該訊息進入訊息佇列越早。例如,訊息10是第10個進入訊息佇列的訊息。
由於可消費訊息的編號範圍是按照訊息編號的順序記錄的,因此可以保證訊息的先進先出特性。可消費訊息的編號範圍可以作為查詢要預讀的批量訊息的依據。通過可消費訊息的編號範圍不僅可以快速查找到要預讀到快取的批量訊息,而且保證了訊息的先進先出特性。
在本發明實施例中,編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列。本文中,將這樣的編號範圍稱為游標域集合,將這樣的編號範圍中的編號區間稱為游標域。游標域用左閉右開區間表示。
本文中,將編號範圍的編號區間的兩個端點處的訊息編號分別稱為左端點訊息編號和右端點訊息編號。
當然,在本發明其他實施例中,所述的編號範圍可以採用其他形式表示,只要其能夠表明訊息佇列中可消費訊息的編號範圍,並且能夠表明這些可消費訊息的編號順序即可。這樣,就可以保證通過該編號範圍就能查詢到訊息佇列中哪些訊息可以消費,並保證這些可消費的訊息能夠按照先進先出的特性被取出消費。
以下將訊息佇列中可消費訊息的編號範圍簡稱為編號範圍。
步驟S202,根據訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息。
在本發明實施例中,根據訊息佇列中訊息的狀態變化情況調整編號範圍和管理訊息可以包括:在從快取中取出訊息佇列中被預讀到快取的訊息供用戶端消費之後,縮小編號範圍,將取出的訊息的編號排除在該編號範圍之外,且在訊息佇列中將該取出的訊息標記為不可消費訊息。
例如,假設編號範圍的初始狀態為{[1,101)},訊息佇列中被預讀到快取的訊息為訊息1至訊息10這10個訊息,在從快取中取出這10個訊息之後,將編號範圍{[1,101)}縮小為{[11,101)},使得訊息1至訊息10這10個訊息的編號被排除在了可消費訊息的編號範圍之外。
訊息消費者從快取中取出的訊息進入到非活躍訊息佇列,屬於不活躍的訊息,也即正在被用戶消費的訊息。如果這些訊息被消費成功,那麼這些訊息就屬於不可消費的訊息,將被排除出可消費訊息的範圍。這裡將所有從快取
中取出的訊息都先按照消費成功的情況處理,如果消費失敗,再通過後續的復活機制加入到可消費訊息的範圍中。
在本發明實施例中,根據訊息佇列中訊息的狀態變化情況調整編號範圍和管理訊息還可以包括:在用戶端超時未返回消費結果的情況下,擴大編號範圍,使超時未返回消費結果的訊息的編號包括在該編號範圍之內,且在訊息佇列中將該超時未返回消費結果的訊息標記為可消費訊息。其中,如果用戶端超時未返回消費結果,可以認為訊息消費失敗,因此,將超時未返回消費結果的訊息稱為消費失敗的訊息。這就是消費失敗的訊息的復活機制。通過將消費失敗的訊息的編號包括到編號範圍之內,使得可以對該訊息進行再次消費,並且可以按照先進先出的特性進行消費。
這裡,以游標域集合為例,對因訊息消費失敗而擴大可消費訊息的編號範圍的情況進行說明。
具體地,在訊息佇列中的訊息消費失敗的情況下,擴大編號範圍,使消費失敗的訊息的編號包括在該編號範圍之內,可以通過如下步驟實現:消費失敗的訊息也就是要復活的訊息。
步驟a,假設復活的訊息的訊息ID為MsgID,根據MsgID,在游標域集合中定位游標域[MsgID,MsgID+1)的上界游標域,記上界游標域為[Upper_BeginID,Upper_EndID),其中,MsgID的上界游標域是指游標域集合中第一個右端點訊息編號大於MsgID+1的游標域;
步驟b,如果該上界游標域[Upper_BeginID,Upper_EndID)已經包含MsgID,則結束流程,不再調整游標域;步驟c,如果該上界游標域的左端點訊息編號Upper_BeginID>MsgID,則進行後續操作來調整游標域集合以使游標域集合涵蓋MsgID;步驟d,獲取訊息MsgID的前驅游標域[Pre_BeginID,Pre_ EndID),其中,訊息MsgID的前驅游標域是指游標域集合中第一個右端點訊息編號小於MsgID+1的游標域;步驟e,如果訊息MsgID的前驅游標域不存在,則將[MsgID,MsgID+1)加入游標域集合,然後結束流程;步驟f,如果訊息MsgID的前驅游標域存在,則將游標域[Pre_BeginID,MsgID+1)和游標域[MsgID,Upper_EndID)中範圍較小且不超過MAX_RANGE_SIZE的游標域加入游標域集合,來替換前驅游標域或者上界游標域(如果兩者中游標域[Pre_BeginID,MsgID+1)範圍較小,就用[Pre_BeginID,MsgID+1)替換前驅游標域[Pre_BeginID,Pre_ EndID),如果兩者中游標域[MsgID,Upper_EndID)範圍較小,就用[MsgID,Upper_EndID)替換上界游標域[Upper_BeginID,Upper_EndID)),其中,MAX_RANGE_SIZE為預設的游標域的最大範圍;步驟g,如果訊息MsgID的前驅游標域存在,且將游標域[Pre_BeginID,MsgID+1)和游標域[MsgID,
Upper_EndID)的範圍都超過MAX_RANGE_SIZE,則將[MsgID,MsgID+1)加入游標域集合。
需要說明的是,在步驟f中,如果游標域集合的規模達到上限(該上限即游標域集合的最大規模,用MAX_COUNT表示),則不能再添加新的游標域,而是選擇上界游標域或者前驅游標域進行擴大。特別的,如果上界游標域是最大游標域,則只能對其前驅游標域進行擴大。即在MsgID-Pre_BeginID<Upper_EndID-MsgID,並且MsgID-Pre_BeginID<MAX_RANGE_SIZE的情況下,將前驅游標域擴大為[Pre_BeginID,MsgID+1),如圖3所示。圖3為在復活訊息MsgID時對訊息MsgID的前驅游標域進行擴大的示意圖,圖3中,PB表示Pre_BeginID,PE表示Pre_ EndID,UB表示Upper_BeginID,UE表示Upper_EndID。其中,MAX_COUNT表示游標域集合中最多可以包含的游標域的總數目。
在步驟f中,如果游標域[Pre_BeginID,MsgID+1)和游標域[MsgID,Upper_EndID)的範圍相同且都不超過MAX_RANGE_SIZE,可以隨機選擇游標域[Pre_BeginID,MsgID+1)來替換前驅游標域或者選擇[MsgID,Upper_EndID)來替換上界游標域,也可以預設選擇游標域[Pre_BeginID,MsgID+1)來替換前驅游標域。
這裡舉例說明。以下例1至例4假設MAX_RANGE_SIZE為100,MAX_COUNT為10。
例1、假設當前游標域集合為{[5,101)},復活的訊
息編號為6。訊息6存在上界游標域[5,101),並且訊息6包含在上界游標域[5,101)中,此時不再調整游標域集合,則訊息6復活後,游標域集合仍然為{[5,101)}。
例2、假設當前游標域集合為{[11,101)},復活的訊息編號為6。訊息6存在上界游標域[11,101)且上界游標域[11,101)的左端點訊息編號11大於6,不存在前驅游標域,此時將游標域[6,7)添加到游標域集合中,則訊息6復活後,游標域集合為{[6,7),[11,101)}。
例3、假設當前游標域集合為{[3,6),[11,101)},復活的訊息編號為6。訊息6存在上界游標域[11,101)和前驅游標域[3,6)。游標域[3,7)和游標域[6,101)中範圍較小且不超過MAX_RANGE_SIZE的游標域為[3,7),此時將游標域[3,7)添加到游標域集合替換游標域[3,6),則訊息6復活後,游標域集合為{[3,7),[11,101)}。
例4、假設當前游標域集合為{[1,101),[106,206)},復活的訊息編號為103。訊息103存在上界游標域[106,206)和前驅游標域[1,101)。但游標域[1,104)和游標域[103,206)的範圍都超過了MAX_RANGE_SIZE(上述假設MAX_RANGE_SIZE為100),此時將游標域[3,7)添加到游標域集合,則訊息103復活後,游標域集合為{[1,101),[103,104),[106,206)}。
也就是說,在訊息佇列中的訊息消費失敗的情況下,擴大編號範圍,使消費失敗的訊息的編號包括在該編號範
圍之內,可以包括下面四種情況之一:
一,假設復活的訊息編號為MsgID,在當前游標域集合中存在訊息MsgID的上界游標域,且MsgID包含在該上界游標域的情況下,維持當前游標域集合不變。
二,假設復活的訊息編號為MsgID,在當前游標域集合中存在訊息MsgID的上界游標域、不存在訊息MsgID的前驅游標域,且該上界游標域的開頭訊息編號大於MsgID的情況下,將游標域[MsgID,MsgID+1)添加到當前游標域集合中。
三,假設復活的訊息編號為MsgID,在當前游標域集合中存在訊息MsgID的上界游標域[UB,UE)和前驅游標域[PB,PE),擴展前驅游標域[PB,MsgID+1)和擴展上界游標域[MsgID,UE)兩者之一或全部小於預設的第二閾值的情況下,選擇兩者之中範圍小的游標域替換相應的原游標域;在當前游標域集合的規模達到上限並且上界游標域[UB,UE)是當前游標域集合中最大游標域的情況下,選擇擴展前驅游標域[PB,MsgID+1)替換前驅游標域[PB,PE)。
四,假設復活的訊息編號為MsgID,在當前游標域集合中存在訊息MsgID的上界游標域[UB,UE)和前驅游標域[PB,PE),擴展前驅游標域[PB,MsgID+1)和擴展上界游標域[MsgID,UE全部大於預設的第二閾值的情況下,將游標域[MsgID,MsgID+1)添加到當前游標域集合中。
在本發明實施例中,根據訊息佇列中訊息的狀態變化
情況調整編號範圍和管理訊息可以包括:在用戶端成功消費訊息的情況下,在訊息佇列將消費成功的訊息刪除。此處的刪除是指將訊息從儲存訊息佇列的磁碟中刪除,也即從訊息佇列中刪除。
在本發明實施例中,根據訊息佇列中訊息的狀態變化情況調整編號範圍和管理訊息還可以包括:在從訊息佇列預讀訊息到快取之後,該編號範圍中的非最大編號區間對應的全部可消費訊息都已被預讀的情況下,從該編號範圍中刪除該非最大編號區間。
刪除這樣的非最大編號區間後,編號範圍中編號區間的數目減少了,對編號區間的搜索次數就減少了,因此能夠縮短查詢編號範圍的時間,進一步提高訊息的預讀速度。
為了進一步對編號範圍進行管理,可以為編號範圍設置版本號及版本號更新規則。例如,設置編號範圍的初始版本號為1;每次修改編號範圍,編號範圍的版本號加1;如果修改編號範圍時需要修改編號區間,則將修改後的編號範圍的版本號作為編號區間的版本號。在刪除編號區間時需要保證編號區間未被修改,即編號區間的版本號沒有變化,否則不能刪除。
本發明實施例的訊息管理方法,通過編號範圍來管理訊息佇列中可消費訊息的編號,並且保證了訊息的先進先出特性,在需要預讀批量訊息到快取時,可以根據編號範圍快速查詢到訊息佇列中編號最小的設定數目個可消費訊
息的編號,在保證訊息先進先出特性的前提下提高了訊息預讀速度,提升了訊息系統性能。
本發明還提出了一種訊息管理裝置,用以實施上述的訊息管理方法。上述訊息管理方法實施例中的原理說明,也同樣適用於下面的訊息管理裝置各實施例。
圖4為本發明實施例二中訊息管理裝置的結構方塊圖。如圖4所示,本實施例中,訊息管理裝置400可以包括記錄模組410和調整模組420。其中,記錄模組410用於按照訊息編號的順序在記憶體中記錄訊息佇列中可消費訊息的編號範圍。調整模組420用於根據訊息佇列中訊息的狀態變化情況調整記錄模組410記錄的編號範圍和管理訊息。
其中,編號範圍可以包括至少一個編號區間,且任意兩個編號區間不重疊。
由於可消費訊息的編號範圍是按照訊息編號的順序記錄的,因此可以保證訊息的先進先出特性。可消費訊息的編號範圍可以作為查詢要預讀的批量訊息的依據。通過可消費訊息的編號範圍不僅可以快速查找到要預讀到快取的批量訊息,而且保證了訊息的先進先出特性。
其中,編號範圍中的各編號區間可以按照區間右端點訊息編號從小到大的順序排列。
在本發明實施例中,調整模組420可以包括縮小單元。縮小單元用於在從快取中取出訊息佇列中被預讀到快取的訊息供用戶端消費之後,縮小該編號範圍,將取出的
訊息的編號排除在該編號範圍之外,且在訊息佇列中將該取出的訊息標記為不可消費訊息。
在本發明實施例中,調整模組420可以包括擴大單元。擴大單元用於在用戶端超時未返回消費結果的情況下,擴大編號範圍,使超時未返回消費結果的訊息的編號包括在該編號範圍之內,且在該訊息佇列中將該超時未返回消費結果的訊息標記為可消費訊息。
在本發明實施例中,調整模組420可以包括訊息刪除單元。訊息刪除單元用於在用戶端成功消費訊息的情況下,在訊息佇列將消費成功的訊息刪除。
在本發明實施例中,調整模組420可以包括區間刪除單元。刪除單元用於在從訊息佇列預讀訊息到快取之後,編號範圍中的非最大編號區間對應的全部可消費訊息都已被預讀的情況下,從編號範圍中刪除該非最大編號區間。
本發明實施例的訊息管理裝置,通過編號範圍來管理訊息佇列中可消費訊息的編號,並且保證了訊息的先進先出特性,在需要預讀批量訊息到快取時,可以根據編號範圍快速查詢到訊息佇列中編號最小的設定數目個可消費訊息的編號,在保證訊息先進先出特性的前提下提高了訊息預讀速度,提升了訊息系統性能。
圖5為本發明實施例三中訊息預讀方法的流程圖。如圖5所示,本實施例中,訊息預讀方法可以包括如下步驟:
步驟S501,查詢記憶體中記錄的訊息佇列中可消費
訊息的編號範圍,確定訊息佇列中編號最小的N個可消費訊息的編號,N為自然數;其中,編號範圍可以包括至少一個編號區間,且任意兩個編號區間不重疊。
其中,本步驟中的可消費訊息的編號範圍與前述訊息管理方法中的編號範圍是相同的。
可消費訊息的編號範圍可以作為查詢要預讀的批量訊息的依據。通過可消費訊息的編號範圍不僅可以快速查找到要預讀到快取的批量訊息,而且保證了訊息的先進先出特性。
在本發明實施例中,所述的編號範圍可以包括至少一個編號區間,該編號範圍中的各編號區間可以按照區間右端點訊息編號從小到大的順序排列,且該編號範圍中的任意兩個編號區間不重疊。本文中,將這樣的編號範圍稱為游標域集合,將這樣的編號範圍中的編號區間稱為游標域。游標域用左閉右開區間表示。
步驟S502,根據確定的N個可消費訊息的編號從訊息佇列中預讀相應的訊息到快取。
該N個可消費訊息是訊息佇列中編號最小的N個可消費訊息,保證了訊息的先進先出特性。
下面通過兩個具體示例來對本發明的訊息預讀方法作進一步說明。
示例一
假設記憶體中按照訊息編號的順序記錄的訊息佇列中可消費訊息的編號範圍為{[6,9),[11,101)},該編號範圍內的所有訊息都不是標識為已刪除的訊息。則從訊息佇列預讀5個可消費訊息到快取的過程是:查詢編號範圍{[6,9),[11,101)},確定編號最小的5個可消費訊息的編號為6、7、8、11、12;從訊息佇列中訊息6、訊息7、訊息8、訊息11、訊息12到快取。
這裡說明一下,標識為已刪除的訊息是已經被消費成功的訊息,這樣的訊息不屬於可消費訊息,但是這些訊息的編號可能被包括在可消費訊息的編號範圍之內。這就需要在根據編號範圍確定預讀訊息編號的時候,將這些標識為已刪除的訊息的編號排除掉。此種情況請參見如下的示例二。
示例二
仍然假設記憶體中按照訊息編號的順序記錄的訊息佇列中可消費訊息的編號範圍為{[6,9),[11,101)},該編號範圍內的訊息7是標識為已刪除的訊息。則從訊息佇列預讀5個可消費訊息到快取的過程是:查詢編號範圍{[6,9),[11,101)},確定編號最小的5個可消費訊息的編號為6、8、11、12、13(由於訊息7是標識為已刪除的訊息,編號7被排除掉了);從訊息佇列中訊息6、訊息8、訊息11、訊息12、訊息13到快取。
本發明實施例的訊息預讀方法,能夠根據記憶體中記
錄的訊息佇列中可消費訊息的編號範圍快速查詢到訊息佇列中編號最小的設定數目個可消費訊息的編號,並且還保證了訊息的先進先出特性,提高了訊息預讀速度,提升了訊息系統性能。
本發明還提出了一種訊息預讀裝置,用以實施上述的訊息預讀方法。上述訊息預讀方法實施例中的原理說明,也同樣適用於下面的訊息預讀裝置各實施例。
圖6為本發明實施例四中訊息預讀裝置的結構方塊圖。如圖6所示,本實施例中,訊息預讀裝置600可以包括查詢模組610和預讀模組620。其中可,查詢模組610用於查詢記憶體中記錄的訊息佇列中可消費訊息的編號範圍,確定訊息佇列中編號最小的N個可消費訊息的編號,N為自然數。預讀模組620用於根據查詢模組610確定的N個可消費訊息的編號從訊息佇列中預讀相應的訊息到快取。
其中,可消費訊息的編號範圍與前述訊息管理方法中的編號範圍是相同的。
其中,編號範圍可以包括至少一個編號區間,且任意兩個編號區間不重疊。
由於可消費訊息的編號範圍是按照訊息編號的順序記錄的,因此可以保證訊息的先進先出特性。可消費訊息的編號範圍可以作為查詢要預讀的批量訊息的依據。通過可消費訊息的編號範圍不僅可以快速查找到要預讀到快取的批量訊息,而且保證了訊息的先進先出特性。
在本發明實施例中,所述的編號範圍可以包括至少一個編號區間,該編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列,且該編號範圍中的任意兩個編號區間不重疊。本文中,將這樣的編號範圍稱為游標域集合,將這樣的編號範圍中的編號區間稱為游標域。游標域用左閉右開區間表示。
本發明實施例的訊息預讀裝置,能夠根據記憶體中記錄的訊息佇列中可消費訊息的編號範圍快速查詢到訊息佇列中編號最小的設定數目個可消費訊息的編號,並且還保證了訊息的先進先出特性,提高了訊息預讀速度,提升了訊息系統性能。
圖7為本發明實施例五中訊息管理設備的結構方塊圖。如圖7所示,本實施例中,訊息管理設備700可以包括訊息管理裝置400。該訊息管理裝置400可以是前述訊息管理裝置實施例中的任意一種訊息管理裝置。
其中,訊息管理裝置400可以用於按照訊息編號的順序在記憶體中記錄訊息佇列中可消費訊息的編號範圍,編號範圍包括至少一個編號區間,且任意兩個編號區間不重疊;以及,根據訊息佇列中訊息的狀態變化情況調整編號範圍和管理訊息。
本發明實施例的訊息管理設備,通過編號範圍來管理訊息佇列中可消費訊息的編號,並且保證了訊息的先進先出特性,在需要預讀批量訊息到快取時,可以根據編號範圍快速查詢到訊息佇列中編號最小的設定數目個可消費訊
息的編號,在保證訊息先進先出特性的前提下提高了訊息預讀速度,提升了訊息系統性能。
圖8為本發明實施例六中訊息預讀設備的結構方塊圖。如圖8所示,本實施例中,訊息預讀設備800可以包括訊息預讀裝置600。該訊息預讀裝置600可以是前述訊息預讀裝置實施例中的任意一種訊息預讀裝置。
其中,訊息預讀裝置600可以用於查詢記憶體中記錄的訊息佇列中可消費訊息的編號範圍,確定訊息佇列中編號最小的N個可消費訊息的編號,N為自然數;根據確定的N個可消費訊息的編號從訊息佇列中預讀相應的訊息到快取。其中,編號範圍可以包括至少一個編號區間,且任意兩個編號區間不重疊。
本發明實施例的訊息預讀設備,能夠根據記憶體中記錄的訊息佇列中可消費訊息的編號範圍快速查詢到訊息佇列中編號最小的設定數目個可消費訊息的編號,並且還保證了訊息的先進先出特性,提高了訊息預讀速度,提升了訊息系統性能。
圖9為本發明實施例七中設備900的結構方塊圖。如圖9所示,本實施例中,設備900可以是行動電話,電腦,數位廣播終端,訊息收發設備,遊戲控制台,平板設備,醫療設備,健身設備,個人數位助理等。
參照圖9,設備900可以包括以下一個或多個元件:處理元件902,記憶體904,電源元件906,多媒體元件908,音訊元件910,輸入/輸出(I/O)的介面912,感測
器元件914,以及通信元件916。
處理元件902通常控制設備900的整體操作,諸如與顯示,電話呼叫,資料通信,相機操作和記錄操作相關聯的操作。處理元件902可以包括一個或多個處理器920來執行指令,以完成上述的方法的全部或部分步驟,具體包括:在記憶體中記錄訊息佇列中可消費訊息的編號範圍;根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息;查詢記憶體中記錄的訊息佇列中可消費訊息的編號範圍,確定該訊息佇列中編號最小的N個可消費訊息的編號,N為自然數;根據確定的該N個可消費訊息的編號從該訊息佇列中預讀相應的訊息到快取。
此外,處理元件902可以包括一個或多個模組,便於處理元件902和其他元件之間的交互。例如,處理元件902可以包括多媒體模組,以方便多媒體元件908和處理元件902之間的交互。
記憶體904被配置為儲存各種類型的資料以支援在設備900的操作。這些資料的示例包括用於在設備900上操作的任何應用程式或方法的指令,連絡人資料,電話簿資料,訊息,圖片,影片等。記憶體904可以由任何類型的易失性或非易失性存放裝置或者它們的組合實現,如靜態隨機存取記憶體(SRAM),電可擦除可程式設計唯讀記憶體(EEPROM),可擦除可程式設計唯讀記憶體(EPROM),可程式設計唯讀記憶體(PROM),唯讀記憶體(ROM),磁記憶體,快閃記憶體,磁碟或光碟。
電源元件906為設備900的各種元件提供電力。電源元件906可以包括電源管理系統,一個或多個電源,及其他與為設備900生成、管理和分配電力相關聯的組件。
多媒體元件908包括在該設備900和用戶之間的提供一個輸出介面的螢幕。在一些實施例中,螢幕可以包括液晶顯示器(LCD)和觸控面板(TP)。如果螢幕包括觸控面板,螢幕可以被實現為觸控式螢幕,以接收來自用戶的輸入信號。觸控面板包括一個或多個觸控感測器以感測觸控、滑動和觸控面板上的手勢。該觸控感測器可以不僅感測觸控或滑動動作的邊界,而且還檢測與該觸控或滑動操作相關的持續時間和壓力。在一些實施例中,多媒體元件908包括一個前置攝影機和/或後置攝影機。當設備900處於操作模式,如拍攝模式或視訊模式時,前置攝影機和/或後置攝影機可以接收外部的多媒體資料。每個前置攝影機和後置攝影機可以是一個固定的光學透鏡系統或具有焦距和光學變焦能力。
音訊元件910被配置為輸出和/或輸入音訊信號。例如,音訊元件910包括一個麥克風(MIC),當設備900處於操作模式,如呼叫模式、記錄模式和語音辨識模式時,麥克風被配置為接收外部音訊信號。所接收的音訊信號可以被進一步儲存在記憶體904或經由通信元件916發送。在一些實施例中,音訊元件910還包括一個揚聲器,用於輸出音訊信號。
I/O介面912為處理元件902和週邊介面模組之間提
供介面,上述週邊介面模組可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限於:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
感測器元件914包括一個或多個感測器,用於為設備900提供各個方面的狀態評估。例如,感測器元件914可以檢測到設備900的打開/關閉狀態,元件的相對定位,例如該元件為設備900的顯示器和小鍵盤,感測器元件914還可以檢測設備900或設備900一個元件的位置改變,用戶與設備900接觸的存在或不存在,設備900方位或加速/減速和設備900的溫度變化。感測器元件914可以包括接近感測器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。感測器元件914還可以包括光感測器,如CMOS或CCD圖像感測器,用於在成像應用中使用。在一些實施例中,該感測器元件914還可以包括加速度感測器,陀螺儀感測器,磁感測器,壓力感測器或溫度感測器。
通信元件916被配置為便於設備900和其他設備之間有線或無線方式的通信。設備900可以接入基於通信標準的無線網路,如WiFi,2G或3G,或它們的組合。在一個示例性實施例中,通信元件916經由廣播通道接收來自外部廣播管理系統的廣播信號或廣播相關資訊。在一個示例性實施例中,該通信元件916還包括近場通信(NFC)模組,以促進短程通信。例如,在NFC模組可基於射頻識別(RFID)技術,紅外資料協會(IrDA)技術,超寬頻
(UWB)技術,藍牙(BT)技術和其他技術來實現。
在示例性實施例中,設備900可以被一個或多個應用專用積體電路(ASIC)、數位訊號處理器(DSP)、數位信號處理設備(DSPD)、可程式設計邏輯裝置(PLD)、現場可程式設計閘陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現,用於執行上述方法。
在示例性實施例中,還提供了一種包括指令的非暫時性電腦可讀儲存媒介,例如包括指令的記憶體904,上述指令可由設備900的處理器920執行以完成上述方法。例如,該非暫時性電腦可讀儲存媒介可以是ROM、隨機存取記憶體(RAM)、CD-ROM、磁帶、軟碟和光資料存放裝置等。
本發明實施例還提供了一種非暫時性電腦可讀儲存媒介,當該儲存媒介中的指令由行動終端的處理器執行時,使得行動終端能夠執行一種方法,該方法包括:在記憶體中記錄訊息佇列中可消費訊息的編號範圍;根據該訊息佇列中訊息的狀態變化情況調整該編號範圍;查詢記憶體中記錄的訊息佇列中可消費訊息的編號範圍,確定該訊息佇列中編號最小的N個可消費訊息的編號,N為自然數;根據確定的該N個可消費訊息的編號從該訊息佇列中預讀相應的訊息到快取。
以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、
等同替換、改進等,均應包含在本發明的保護範圍之內。
Claims (20)
- 一種訊息管理方法,其特徵在於,包括:在記憶體中記錄訊息佇列中可消費訊息的編號範圍;根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息;其中,該根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息,包括:在從該訊息佇列中預讀訊息到快取之後,該編號範圍中的非最大編號區間對應的全部可消費訊息都已被預讀的情況下,從該編號範圍中刪除該非最大編號區間。
- 根據請求項1所述的訊息管理方法,其中,該編號範圍包括至少一個編號區間,且任意兩個編號區間不重疊。
- 根據請求項1所述的訊息管理方法,其中,該編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列。
- 根據請求項1所述的訊息管理方法,其中,該根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息,包括:在從快取中取出該訊息佇列中被預讀到該快取的訊息供用戶端消費之後,縮小該編號範圍,將該取出的訊息的編號排除在該編號範圍之外,且在該訊息佇列中將該取出的訊息標記為不可消費訊息。
- 根據請求項1所述的訊息管理方法,其中,該根 據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息,包括:在用戶端超時未返回消費結果的情況下,擴大該編號範圍,使該超時未返回消費結果的訊息的編號包括在該編號範圍之內,且在該訊息佇列中將該超時未返回消費結果的訊息標記為可消費訊息。
- 根據請求項1所述的訊息管理方法,其中,該根據該訊息佇列中訊息的狀態變化情況調整該編號範圍和管理訊息,包括:在用戶端成功消費訊息的情況下,在該訊息佇列將消費成功的訊息刪除。
- 一種訊息管理裝置,其特徵在於,包括:記錄模組,用於在記憶體中記錄訊息佇列中可消費訊息的編號範圍;調整模組,用於根據該訊息佇列中訊息的狀態變化情況調整該記錄模組記錄的該編號範圍和管理訊息;其中,該調整模組包括:區間刪除單元,用於在從該訊息佇列中預讀訊息到快取之後,該編號範圍中的非最大編號區間對應的全部可消費訊息都已被預讀的情況下,從該編號範圍中刪除該非最大編號區間。
- 根據請求項7所述的訊息管理裝置,其中,該編號範圍包括至少一個編號區間,且任意兩個編號區間不重疊。
- 根據請求項7所述的訊息管理裝置,其中,該編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列。
- 根據請求項7所述的訊息管理裝置,其中,該調整模組包括:縮小單元,用於在從快取中取出該訊息佇列中被預讀到該快取的訊息供用戶端消費之後,縮小該編號範圍,將該取出的訊息的編號排除在該編號範圍之外,且在該訊息佇列中將該取出的訊息標記為不可消費訊息。
- 根據請求項7所述的訊息管理裝置,其中,該調整模組包括:擴大單元,用於在用戶端超時未返回消費結果的情況下,擴大該編號範圍,使該超時未返回消費結果的訊息的編號包括在該編號範圍之內,且在該訊息佇列中將該超時未返回消費結果的訊息標記為可消費訊息。
- 根據請求項7所述的訊息管理裝置,其中,該調整模組包括:訊息刪除單元,用於在用戶端成功消費訊息的情況下,在該訊息佇列將消費成功的訊息刪除。
- 一種訊息預讀方法,其特徵在於,包括:查詢記憶體中記錄的訊息佇列中可消費訊息的編號範圍,確定該訊息佇列中編號最小的N個可消費訊息的編號,N為自然數;根據確定的該N個可消費訊息的編號從該訊息佇列中 預讀相應的訊息到快取。
- 根據請求項13所述的訊息預讀方法,其中,該編號範圍包括至少一個編號區間,且任意兩個編號區間不重疊。
- 根據請求項13所述的訊息預讀方法,其中,該編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列。
- 一種訊息預讀裝置,其特徵在於,包括:查詢模組,用於查詢記憶體中記錄的訊息佇列中可消費訊息的編號範圍,確定該訊息佇列中編號最小的N個可消費訊息的編號,N為自然數;預讀模組,用於根據該查詢模組確定的該N個可消費訊息的編號從該訊息佇列中預讀相應的訊息到快取。
- 根據請求項16所述的訊息預讀裝置,其中,該編號範圍包括至少一個編號區間,且任意兩個編號區間不重疊。
- 根據請求項16所述的訊息預讀裝置,其中,該編號範圍中的各編號區間按照區間右端點訊息編號從小到大的順序排列。
- 一種訊息管理設備,其特徵在於,包括請求項7至12任一項所述的訊息管理裝置。
- 一種訊息預讀設備,其特徵在於,包括請求項16至18任一項所述的訊息預讀裝置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610169460.6A CN107231283B (zh) | 2016-03-23 | 2016-03-23 | 消息管理方法及装置、消息预读方法及装置 |
CN201610169460.6 | 2016-03-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201734842A TW201734842A (zh) | 2017-10-01 |
TWI735533B true TWI735533B (zh) | 2021-08-11 |
Family
ID=59899358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106105128A TWI735533B (zh) | 2016-03-23 | 2017-02-16 | 訊息管理方法及裝置、訊息預讀方法及裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11165740B2 (zh) |
CN (1) | CN107231283B (zh) |
TW (1) | TWI735533B (zh) |
WO (1) | WO2017162059A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107231283B (zh) | 2016-03-23 | 2020-12-18 | 阿里巴巴集团控股有限公司 | 消息管理方法及装置、消息预读方法及装置 |
CN111400056B (zh) * | 2019-12-31 | 2023-07-28 | 远景智能国际私人投资有限公司 | 基于消息队列的消息传输方法、装置及设备 |
CN111669431B (zh) * | 2020-05-07 | 2021-11-19 | 深圳华锐金融技术股份有限公司 | 消息传输方法、装置、计算机设备和存储介质 |
CN114979249B (zh) * | 2022-03-30 | 2024-08-09 | 阿里巴巴(中国)有限公司 | 消息句柄的创建方法、消息推送方法及相关装置和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205781A1 (en) * | 2003-03-27 | 2004-10-14 | Hill Richard D. | Message delivery with configurable assurances and features between two endpoints |
US20070076735A1 (en) * | 2005-10-04 | 2007-04-05 | Intel Corporation | Dynamic buffer configuration |
US20070079071A1 (en) * | 2005-09-30 | 2007-04-05 | Bratin Saha | Lock-free bounded FIFO queue mechanism |
CN101094098A (zh) * | 2007-07-19 | 2007-12-26 | 上海交通大学 | 同步数字体系网络标记交换的标记处理方法 |
CN103984734A (zh) * | 2014-05-20 | 2014-08-13 | 中国科学院软件研究所 | 一种面向高性能计算的云服务消息传递方法 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956340A (en) * | 1997-08-05 | 1999-09-21 | Ramot University Authority For Applied Research And Industrial Development Ltd. | Space efficient fair queuing by stochastic Memory multiplexing |
US6058389A (en) * | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
US20030093576A1 (en) * | 2001-11-13 | 2003-05-15 | International Business Machines Corporation | Method and system for message management |
US7127467B2 (en) * | 2002-05-10 | 2006-10-24 | Oracle International Corporation | Managing expressions in a database system |
US7334019B2 (en) * | 2002-07-18 | 2008-02-19 | Ebay Inc. | Delivering messages to message servers |
US7203706B2 (en) * | 2002-08-01 | 2007-04-10 | Oracle International Corporation | Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue |
US20040230659A1 (en) * | 2003-03-12 | 2004-11-18 | Chase Michael John | Systems and methods of media messaging |
US7644197B1 (en) * | 2003-10-15 | 2010-01-05 | Sun Microsystems, Inc. | Queue management by multiple processors |
US7640357B2 (en) * | 2004-04-30 | 2009-12-29 | Sap Ag | Transmitting enterprise messages based on buffer sizes |
US8095598B2 (en) * | 2004-04-30 | 2012-01-10 | Sap Ag | Methods and apparatus for subscribing/publishing messages in an enterprising computing environment |
US7870200B2 (en) * | 2004-05-29 | 2011-01-11 | Ironport Systems, Inc. | Monitoring the flow of messages received at a server |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
US20060248145A1 (en) * | 2005-04-18 | 2006-11-02 | Srimantee Karmakar | System and method for providing various levels of reliable messaging between a client and a server |
US7600126B2 (en) * | 2005-05-27 | 2009-10-06 | Microsoft Corporation | Efficient processing of time-bounded messages |
US20080222255A1 (en) * | 2007-03-08 | 2008-09-11 | Andrew Douglass Hall | Systems and methods for providing high performance and scalable messaging |
US8200836B2 (en) * | 2007-11-16 | 2012-06-12 | Microsoft Corporation | Durable exactly once message delivery at scale |
EP2187580B1 (en) * | 2008-11-18 | 2013-01-16 | Alcatel Lucent | Method for scheduling packets of a plurality of flows and system for carrying out the method |
US9585062B2 (en) * | 2010-07-15 | 2017-02-28 | Dejero Labs Inc. | System and method for implementation of dynamic encoding rates for mobile devices |
CN101763289B (zh) * | 2009-09-25 | 2013-11-20 | 中国人民解放军国防科学技术大学 | 一种基于共享内存的消息传递方法 |
US8199752B2 (en) * | 2009-10-02 | 2012-06-12 | Limelight Networks, Inc. | Enhanced anycast for edge server selection |
US8996563B2 (en) * | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
US9224111B2 (en) * | 2011-02-25 | 2015-12-29 | Red Hat, Inc. | Message queue based product asset management auditing system |
US9015303B2 (en) * | 2011-09-12 | 2015-04-21 | Microsoft Corporation | Message queue behavior optimizations |
US9436532B1 (en) * | 2011-12-20 | 2016-09-06 | Emc Corporation | Method and system for implementing independent message queues by specific applications |
US10051038B2 (en) * | 2011-12-23 | 2018-08-14 | Intel Corporation | Shared send queue |
CN102647323B (zh) * | 2012-03-28 | 2015-01-07 | 华为技术有限公司 | 流量控制方法、装置和集群系统 |
US9246836B2 (en) * | 2012-08-30 | 2016-01-26 | Sybase, Inc. | Single producer, single consumer lockless FIFO/LIFO queue |
CN102902512B (zh) * | 2012-08-31 | 2015-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
US9268605B2 (en) * | 2012-09-12 | 2016-02-23 | Salesforce.Com, Inc. | Mechanism for facilitating sliding window resource tracking in message queues for fair management of resources for application servers in an on-demand services environment |
US9495296B2 (en) * | 2013-06-12 | 2016-11-15 | Oracle International Corporation | Handling memory pressure in an in-database sharded queue |
US9578120B1 (en) * | 2013-12-20 | 2017-02-21 | Amazon Technologies, Inc. | Messaging with key-value persistence |
US9372879B1 (en) * | 2013-12-20 | 2016-06-21 | Amazon Technologies, Inc. | Balanced append tree data structure |
US20160043982A1 (en) * | 2014-08-11 | 2016-02-11 | Facebook, Inc. | Techniques for a sequential message reader for message syncing |
US9680761B2 (en) * | 2014-08-14 | 2017-06-13 | Dropbox, Inc. | Consolidating messages in a message queue |
CN104915248A (zh) * | 2015-05-18 | 2015-09-16 | 北京京东尚科信息技术有限公司 | 计算机实现的商品提供/消费方法及系统 |
US20170078367A1 (en) * | 2015-09-10 | 2017-03-16 | Lightfleet Corporation | Packet-flow message-distribution system |
CN105407152A (zh) * | 2015-11-03 | 2016-03-16 | 竞技世界(杭州)网络技术有限公司 | 推送消息的方法 |
US9906480B2 (en) * | 2015-12-10 | 2018-02-27 | Facebook, Inc. | Techniques for ephemeral messaging with legacy clients |
US10200330B2 (en) * | 2015-12-10 | 2019-02-05 | Facebook, Inc. | Techniques for ephemeral messaging with a message queue |
CN107231283B (zh) | 2016-03-23 | 2020-12-18 | 阿里巴巴集团控股有限公司 | 消息管理方法及装置、消息预读方法及装置 |
US9996404B2 (en) * | 2016-09-01 | 2018-06-12 | Oracle International Corporation | Message cache management for message queues |
US10540217B2 (en) * | 2016-09-16 | 2020-01-21 | Oracle International Corporation | Message cache sizing |
-
2016
- 2016-03-23 CN CN201610169460.6A patent/CN107231283B/zh active Active
-
2017
- 2017-02-16 TW TW106105128A patent/TWI735533B/zh active
- 2017-03-13 WO PCT/CN2017/076400 patent/WO2017162059A1/zh active Application Filing
-
2018
- 2018-09-21 US US16/138,856 patent/US11165740B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205781A1 (en) * | 2003-03-27 | 2004-10-14 | Hill Richard D. | Message delivery with configurable assurances and features between two endpoints |
US20070079071A1 (en) * | 2005-09-30 | 2007-04-05 | Bratin Saha | Lock-free bounded FIFO queue mechanism |
US20070076735A1 (en) * | 2005-10-04 | 2007-04-05 | Intel Corporation | Dynamic buffer configuration |
CN101094098A (zh) * | 2007-07-19 | 2007-12-26 | 上海交通大学 | 同步数字体系网络标记交换的标记处理方法 |
CN103984734A (zh) * | 2014-05-20 | 2014-08-13 | 中国科学院软件研究所 | 一种面向高性能计算的云服务消息传递方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107231283A (zh) | 2017-10-03 |
US11165740B2 (en) | 2021-11-02 |
TW201734842A (zh) | 2017-10-01 |
WO2017162059A1 (zh) | 2017-09-28 |
CN107231283B (zh) | 2020-12-18 |
US20190028422A1 (en) | 2019-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2647681C2 (ru) | Способ и устройство отображения альбома | |
TWI735533B (zh) | 訊息管理方法及裝置、訊息預讀方法及裝置 | |
WO2018010512A1 (zh) | 拍摄文件上传方法及装置 | |
WO2017031875A1 (zh) | 在聊天界面更改表情符号的方法、装置及终端设备 | |
US10810172B2 (en) | Data clearing method, apparatus and storage medium | |
WO2017113660A1 (zh) | 应用程序管理方法及装置 | |
WO2016000357A1 (zh) | 网页访问方法、装置、服务器及终端 | |
WO2019095140A1 (zh) | 剩余关键系统信息的公共控制资源集合的周期信息指示方法 | |
WO2017028425A1 (zh) | 节能模式启动方法和装置 | |
KR20170023767A (ko) | 이미지 처리 방법 및 장치 | |
WO2015143806A1 (zh) | 页面回退控制方法及装置 | |
WO2016029648A1 (zh) | 文件备份方法和装置 | |
WO2017088247A1 (zh) | 输入处理方法、装置及设备 | |
WO2019101043A1 (zh) | 图像处理方法、终端、计算机存储介质及计算机程序 | |
US20180288155A1 (en) | Method and apparatus for managing a shared storage system | |
WO2021046674A1 (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
WO2015149524A1 (zh) | 处理呼叫占线的方法、装置和系统 | |
CN115208810A (zh) | 一种转发流表加速方法及装置、电子设备和存储介质 | |
WO2016201889A1 (zh) | 网址劫持检测的方法及装置 | |
KR101601003B1 (ko) | 인스턴트 메세지를 관리하는 방법, 장치, 프로그램 및 기록매체 | |
WO2017101397A1 (zh) | 一种信息显示方法及装置 | |
US20200319825A1 (en) | Method and system for data processing | |
WO2021031311A1 (zh) | 超网络构建方法、使用方法、装置及介质 | |
CN112948440A (zh) | 页面数据的处理方法及装置、终端、存储介质 | |
US20210132855A1 (en) | Method and device for detecting slow node and computer-readable storage medium |