System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及無線數據領域,具體地,涉及一種基于緩存的業務信號隊列過濾方法及系統。
技術介紹
1、在業務系統對業務信號隊列的處理過程中,會出現短時間內針對同一業務對象的大量操作信號,但業務系統只需要處理業務對象在經歷一系列操作后的最終狀態。若業務系統處理每一個業務信號,會導致處理效率降低。
2、專利文獻cn108156093a公開了一種適于低帶寬弱連接環境的多應用數據傳輸方法,包括:設置至少兩個優先級隊列,數據發送優先級最高的優先級隊列被定義成高優先級隊列;接收一個或者多個應用數據包,根據設定的優先級分類規則對接收的應用數據包分別進行優先級標記,將之分配至與其優先級對應的優先級隊列中;實時監控當前網絡帶寬,并且設定一帶寬閾值,將監控結果與帶寬閾值作比對,響應于網絡帶寬小于帶寬閾值,按照預先設定的數據包過濾策略,將除高優先級隊列之外的優先級隊列中的應用數據包丟棄,只發送高優先級隊列內的應用數據包。但該專利技術會受限于緩沖區的大小。
技術實現思路
1、針對現有技術中的缺陷,本專利技術的目的是提供一種基于緩存的業務信號隊列過濾方法及系統。
2、根據本專利技術提供的一種基于緩存的業務信號隊列過濾方法,包括:
3、步驟s1:記錄信號緩存,管理信號同步鎖;
4、步驟s2:過濾業務信號并生成重組信號;
5、步驟s3:接收業務信號隊列后,判斷是否是過濾系統重新放入業務信號隊列的重組信號;
6、步驟s4:過濾重組信號,確定重組信
7、步驟s5:如需要兜底,使重組信號兜底。
8、優選地,在所述步驟s1中:
9、記錄信號緩存,以key-value的形式存儲業務對象、對應的版本號、對應的重組信號id;
10、信號同步鎖用于記錄業務信號中的業務對象是否已被處理;當一個業務信號嘗試獲取同步鎖時,判斷此信號的業務對象是否已存在于信號緩存模塊中,若業務對象已存在,則獲取失敗;若業務對象不存在,則獲取成功,將此業務對象記錄入信號緩存模塊中,并設置預設的過期時間,版本號設置為0,過期后自動從信號緩存模塊中刪除此業務對象的同步鎖。
11、優選地,在所述步驟s2中:
12、過濾業務信號并生成重組信號,解析業務信號的業務對象,向信號緩存模塊獲取同步鎖,若成功獲取到同步鎖,在信號緩存模塊中新建信號的緩存,并將信號發送到業務系統進行處理,同時將業務信號與版本號生成重組信號,加入業務信號隊列用于兜底處理,并生成重組信號id一同記錄在信號緩存中;若沒有獲取到同步鎖,將信號緩存模塊中此信號的版本號加1,并將信號丟棄。
13、優選地,在所述步驟s4中:
14、過濾重組信號,以確定重組信號是否需要兜底處理;
15、向信號緩存模塊獲取同步鎖,若成功獲取到同步鎖,重組信號對應的來源信號的同步鎖已經過期,且沒有新的業務信號進入,此時重組信號應輸入信號兜底模塊進行兜底處理;
16、若重組信號沒有獲取到同步鎖,根據信號緩存中記錄的重組信號id判斷此業務對象是否被當前的重組信號鎖定,如果是當前重組信號鎖定此業務對象,重組信號輸入信號兜底處理模塊;如果不是當前重組信號鎖定此業務對象,當前重組信號丟棄。
17、優選地,在所述步驟s5中:
18、刪除信號緩存模塊中重組信號的業務對象緩存并取出版本號,判斷重組信號的版本號與信號緩存中此業務對象的版本號是否一致,若不一致則將信號傳輸至業務系統進行處理;
19、當業務信號隊列中存在相同的業務信號時,每個業務對象的第一條信號進入業務系統處理,并生成重組信號重新進入業務信號隊列,之后預設時間內的此業務對象的信號被丟棄,直至重組信號獲取到原信號的鎖進行兜底處理,當業務信號隊列中的信號數量多于預設標準,導致重組信號重新進入過濾系統前原信號的鎖已經過期,有同一業務對象的其他信號獲取到鎖,生成了新的重組信號,當前的重組信號不進行兜底處理。
20、根據本專利技術提供的一種基于緩存的業務信號隊列過濾系統,執行所述的基于緩存的業務信號隊列過濾方法,包括:
21、信號緩存模塊:記錄信號緩存,管理信號同步鎖;
22、信號篩選模塊:接收業務信號隊列后,判斷是否是過濾系統重新放入業務信號隊列的重組信號;
23、信號鎖定模塊:過濾業務信號并生成重組信號;
24、信號重鎖定模塊:過濾重組信號,確定重組信號是否需要兜底處理;
25、信號兜底處理模塊:使重組信號兜底。
26、優選地,在所述信號緩存模塊中:
27、記錄信號緩存,以key-value的形式存儲業務對象、對應的版本號、對應的重組信號id;
28、信號同步鎖用于記錄業務信號中的業務對象是否已被處理;當一個業務信號嘗試獲取同步鎖時,判斷此信號的業務對象是否已存在于信號緩存模塊中,若業務對象已存在,則獲取失??;若業務對象不存在,則獲取成功,將此業務對象記錄入信號緩存模塊中,并設置預設的過期時間,版本號設置為0,過期后自動從信號緩存模塊中刪除此業務對象的同步鎖。
29、優選地,在所述信號篩選模塊中:
30、接收業務信號隊列后判斷是否是過濾系統重新放入業務信號隊列的重組信號;業務信號傳輸到信號鎖定模塊處理;重生成信號傳輸到信號重鎖定模塊處理;
31、在所述信號鎖定模塊中:
32、過濾業務信號并生成重組信號,解析業務信號的業務對象,向信號緩存模塊獲取同步鎖,若成功獲取到同步鎖,在信號緩存模塊中新建信號的緩存,并將信號發送到業務系統進行處理,同時將業務信號與版本號生成重組信號,加入業務信號隊列用于兜底處理,并生成重組信號id一同記錄在信號緩存中;若沒有獲取到同步鎖,將信號緩存模塊中此信號的版本號加1,并將信號丟棄。
33、優選地,在所述信號重鎖定模塊中:
34、過濾重組信號,以確定重組信號是否需要兜底處理;
35、向信號緩存模塊獲取同步鎖,若成功獲取到同步鎖,重組信號對應的來源信號的同步鎖已經過期,且沒有新的業務信號進入,此時重組信號應輸入信號兜底模塊進行兜底處理;
36、若重組信號沒有獲取到同步鎖,根據信號緩存中記錄的重組信號id判斷此業務對象是否被當前的重組信號鎖定,如果是當前重組信號鎖定此業務對象,重組信號輸入信號兜底處理模塊;如果不是當前重組信號鎖定此業務對象,當前重組信號丟棄。
37、優選地,在所述信號兜底處理模塊中:
38、刪除信號緩存模塊中重組信號的業務對象緩存并取出版本號,判斷重組信號的版本號與信號緩存中此業務對象的版本號是否一致,若不一致則將信號傳輸至業務系統進行處理;
39、當業務信號隊列中存在相同的業務信號時,每個業務對象的第一條信號進入業務系統處理,并生成重組信號重新進入業務信號隊列,之后預設時間內的此業務對象的信號被丟棄,直至重組信號獲取到本文檔來自技高網...
【技術保護點】
1.一種基于緩存的業務信號隊列過濾方法,包括:
2.根據權利要求1所述的基于緩存的業務信號隊列過濾方法,其特征在于,在所述步驟S1中:
3.根據權利要求1所述的基于緩存的業務信號隊列過濾方法,其特征在于,在所述步驟S2中:
4.根據權利要求1所述的基于緩存的業務信號隊列過濾方法,其特征在于,在所述步驟S4中:
5.根據權利要求1所述的基于緩存的業務信號隊列過濾方法,其特征在于,在所述步驟S5中:
6.一種基于緩存的業務信號隊列過濾系統,其特征在于,執行權利要求1-5任一項所述的基于緩存的業務信號隊列過濾方法,包括:
7.根據權利要求6所述的基于緩存的業務信號隊列過濾系統,其特征在于,在所述信號緩存模塊中:
8.根據權利要求6所述的基于緩存的業務信號隊列過濾系統,其特征在于:
9.根據權利要求6所述的基于緩存的業務信號隊列過濾系統,其特征在于,在所述信號重鎖定模塊中:
10.根據權利要求5所述的基于緩存的業務信號隊列過濾系統,其特征在于,在所述信號兜底處理模塊中:
【技術特征摘要】
1.一種基于緩存的業務信號隊列過濾方法,包括:
2.根據權利要求1所述的基于緩存的業務信號隊列過濾方法,其特征在于,在所述步驟s1中:
3.根據權利要求1所述的基于緩存的業務信號隊列過濾方法,其特征在于,在所述步驟s2中:
4.根據權利要求1所述的基于緩存的業務信號隊列過濾方法,其特征在于,在所述步驟s4中:
5.根據權利要求1所述的基于緩存的業務信號隊列過濾方法,其特征在于,在所述步驟s5中:
6.一種基于緩存的業務信號隊列過...
【專利技術屬性】
技術研發人員:魏楊蓁,黃李亮,張莉,湯海華,
申請(專利權)人:歐冶工業品股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。