[發明專利]一種處理業務實體中增量信息的方法及裝置有效
| 申請號: | 201710854922.2 | 申請日: | 2017-09-20 |
| 公開(公告)號: | CN107678856B | 公開(公告)日: | 2022-04-05 |
| 發明(設計)人: | 孫遷;葉國華;姜甲東;楊念磊;劉發亮 | 申請(專利權)人: | 蘇寧易購集團股份有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F8/658 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 210000 江蘇省*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 處理 業務 實體 增量 信息 方法 裝置 | ||
1.一種處理業務實體中增量信息的方法,其特征在于,包括:
讀取業務實體的主鍵,并根據所讀取的主鍵標記對應所述業務實體的隊列;
當檢測到所述業務實體產生增量信息時,將所產生的增量信息導入對應所述業務實體的隊列;
向所述對應所述業務實體的隊列分配線程資源,并依次處理所述對應所述業務實體的隊列中的增量信息,其中,所述對應所述業務實體的隊列與分配線程為一一對應關系;
其中,一個訂單作為一個業務實體,每個訂單的id作為業務實體的主鍵;
在業務系統讀取到一個業務實體的主鍵后,從隊列池中提取一項空白的隊列,并通過所讀取的業務實體的主鍵命名該空白的隊列;
在初始化調度線程后,還包括:
第1步、調度線程從待處理集合中取出一個待處理的業務實體的主鍵,分配隊列后進行加鎖,成功后轉第2步,否則重復執行第1步;
第2步、將主鍵寫入處理中集合,成功后轉第3步,失敗后轉第9步;
第3步、從隊列頭部讀取一個增量信息,成功后轉第4步,否則轉第9步;
第4步、判斷讀取到的增量信息是否為空,不為空轉第5步,否則轉第9步;
第5步、調用目標數據庫的接口保存或更新;
第6步、從隊列頭部刪除一個元素;
第7步、繼續從隊列頭部讀取下一個增量信息,如果有則轉第3步,否則轉第8步;
第8步、從處理集合中刪除該實體主鍵;
第9步、對實體主鍵進行解鎖;
還包括:
當讀取業務實體的主鍵后,從緩存中的隊列資源池中獲取空閑的隊列;
在根據所讀取的主鍵標記對應所述業務實體的隊列之后,對所述業務實體的隊列加鎖,其中,被加鎖的隊列屏蔽命名的主鍵以外業務實體所產生的信息;
所述將所產生的增量信息導入對應所述業務實體的隊列,包括:
確定產生增量信息的業務實體的主鍵;
根據所確定的主鍵在緩存中查詢所述對應所述業務實體的隊列;
將所產生的增量信息,按照時間順序存入所述對應所述業務實體的隊列;
所述向所述對應所述業務實體的隊列分配線程資源,包括:
從所述隊列資源池中,獲取已被加鎖的隊列;
向所獲取的且被加鎖的隊列分配線程資源;
所述依次處理所述對應所述業務實體的隊列中的增量信息,包括:
按照從所述對應所述業務實體的隊列的頭部至尾部的順序,依次提取增量信息;
每一項增量信息被提取時,確定被提取的增量信息的目標接口,并調用所述目標接口保存或更新所述被提取的增量信息,其中,所述目標接口指向數據庫中的指定存儲區域;
當所述對應所述業務實體的隊列中的增量信息被處理完畢后,解鎖所述對應所述業務實體的隊列,并刪除標記所述對應所述業務實體的隊列的主鍵。
2.一種處理業務實體中增量信息的裝置,其特征在于,包括:
預處理模塊,用于讀取業務實體的主鍵,并根據所讀取的主鍵標記對應所述業務實體的隊列;
分析模塊,用于當檢測到所述業務實體產生增量信息時,將所產生的增量信息導入對應所述業務實體的隊列;
分配模塊,用于向所述對應所述業務實體的隊列分配線程資源;
處理模塊,用于依次處理所述對應所述業務實體的隊列中的增量信息,其中,所述對應所述業務實體的隊列與分配線程為一一對應關系;
其中,一個訂單作為一個業務實體,每個訂單的id作為業務實體的主鍵;
在業務系統讀取到一個業務實體的主鍵后,從隊列池中提取一項空白的隊列,并通過所讀取的業務實體的主鍵命名該空白的隊列;
在初始化調度線程后,還包括:
第1步、調度線程從待處理集合中取出一個待處理的業務實體的主鍵,分配隊列后進行加鎖,成功后轉第2步,否則重復執行第1步;
第2步、將主鍵寫入處理中集合,成功后轉第3步,失敗后轉第9步;
第3步、從隊列頭部讀取一個增量信息,成功后轉第4步,否則轉第9步;
第4步、判斷讀取到的增量信息是否為空,不為空轉第5步,否則轉第9步;
第5步、調用目標數據庫的接口保存或更新;
第6步、從隊列頭部刪除一個元素;
第7步、繼續從隊列頭部讀取下一個增量信息,如果有則轉第3步,否則轉第8步;
第8步、從處理集合中刪除該實體主鍵;
第9步、對實體主鍵進行解鎖;
還包括:
鎖定模塊,用于當讀取業務實體的主鍵后,從緩存中的隊列資源池中獲取空閑的隊列;在根據所讀取的主鍵標記對應所述業務實體的隊列之后,對所述業務實體的隊列加鎖,其中,被加鎖的隊列屏蔽命名的主鍵以外業務實體所產生的信息;
所述分析模塊,具體用于確定產生增量信息的業務實體的主鍵;并根據所確定的主鍵在緩存中查詢所述對應所述業務實體的隊列;再將所產生的增量信息,按照時間順序存入所述對應所述業務實體的隊列;
所述分配模塊,具體用于從所述隊列資源池中,獲取已被加鎖的隊列;并向所獲取的且被加鎖的隊列分配線程資源;
所述處理模塊,具體用于按照從所述對應所述業務實體的隊列的頭部至尾部的順序,依次提取增量信息;在每一項增量信息被提取時,確定被提取的增量信息的目標接口,并調用所述目標接口保存或更新所述被提取的增量信息,其中,所述目標接口指向數據庫中的指定存儲區域;當所述對應所述業務實體的隊列中的增量信息被處理完畢后,解鎖所述對應所述業務實體的隊列,并刪除標記所述對應所述業務實體的隊列的主鍵。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇寧易購集團股份有限公司,未經蘇寧易購集團股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710854922.2/1.html,轉載請聲明來源鉆瓜專利網。





