[發明專利]基于消息分發的處理方法及裝置在審
| 申請號: | 201810331265.8 | 申請日: | 2018-04-13 |
| 公開(公告)號: | CN108446183A | 公開(公告)日: | 2018-08-24 |
| 發明(設計)人: | 楊廣榮;劉栩生;王向輝 | 申請(專利權)人: | 廣東億迅科技有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 深圳市精英專利事務所 44242 | 代理人: | 馮筠 |
| 地址: | 510000 廣東省廣州*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 業務線程 消息隊列 消息分發 用戶請求 會話 關聯 并發處理 處理請求 獲取請求 接收用戶 實時維護 用戶體驗 正常運作 初始化 多通道 推送 線程 創建 保證 維護 | ||
本發明公開了一種基于消息分發的處理方法及裝置,方法包括以下步驟:創建并初始化N個一一對應關聯的消息隊列,業務線程和會話集,N為大于0的自然數;接收用戶請求;獲取用戶請求的處理編號;根據處理編號,將請求任務推送至對應處理編號的消息隊列;業務線程循環獲取相同處理編號的消息隊列的請求任務,并處理請求。本方案通過將消息隊列、業務線程和會話集一一對應關聯,每一個業務線程對應一個消息隊列循環獲取請求任務進行處理,多通道處理用戶請求,可以并發處理更多的請求任務,提高用戶體驗;同時維護線程根據業務線程的狀態,對業務線程進行實時維護,保證業務線程能夠正常運作。
技術領域
本發明涉及到業務系統消息處理領域,特別是涉及到一種基于消息分發的處理方法及裝置。
背景技術
一個進程所占有內存大小、線程數量是有限的,處理用戶請求時,需要將請求任務派發到線程中,操作系統將資源分配給線程,線程等待獲取CPU后執行。在整個過程中,線程的創建和銷毀是需要開銷的,并且在處理時,如果涉及線程同步,可能還會發生資源競爭,線程阻塞等情況。
現有的處理方案是:利用消息任務隊列化,任務隨機分發機制,線程池等技術并發處理請求。由于處理任務所派發的業務線程是隨機的,在線程同步中需要考慮資源競爭,阻塞等情況;另外,任務無法準確定位所在的業務線程,無法確定任務的處理階段,業務線程可能因任務推送遲緩處于空閑狀態等。
當系統處理的用戶請求量過大,如果還是采用傳統的線性消息處理方式,可能會導致消息響應時間長,用戶體驗差,嚴重還可能會造成系統崩潰,甚至整個服務器宕機。本發明提出了一種技術方案,能夠利用有限的資源,更快、更有效、更合理地處理用戶請求。
發明內容
為了解決上述現有技術的缺陷,本發明的目的是提供一種基于消息分發的處理方法及裝置,能夠利用有限的資源,更快、更有效、更合理地處理用戶請求。
為達到上述目的,本發明的技術方案是:
一種基于消息分發的處理方法,包括以下步驟:
創建并初始化N個一一對應關聯的消息隊列,業務線程和會話集,N為大于0的自然數;
接收用戶請求;
獲取用戶請求的處理編號;
根據處理編號,將請求任務推送至對應處理編號的消息隊列;
業務線程循環獲取相同處理編號的消息隊列的請求任務,并處理請求。
進一步地,所述獲取用戶請求的處理編號步驟,包括,
解析用戶請求,獲取用戶請求唯一對應的標識id;
根據標識id得到該用戶請求的處理編號。
進一步地,所述根據處理編號,將請求任務推送至對應處理編號的消息隊列步驟,包括,
在會話集中查詢對應處理編號的會話是否存在;
若存在,則更新會話狀態;
若不存在,則創建一個新會話,關聯該處理編號。
進一步地,所述業務線程循環獲取相同處理編號的消息隊列的請求任務,并處理請求步驟之后,包括,
監控并維護所有業務線程的業務狀態。
進一步地,所述監控所有業務線程的業務狀態步驟,包括,
若業務線程非正常結束,維護線程重新創建并啟動一個新的業務線程;
若會話超時,移除超時的會話。
本發明還提出一種基于消息分發的處理裝置,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東億迅科技有限公司,未經廣東億迅科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810331265.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于共享內存的跨進程通信方法及裝置
- 下一篇:分析故障根原因的方法和系統





