本申請公開了一種數據報文的讀取方法、裝置、設備及存儲介質。所述方法通過預先設置當前排序隊列和已排序隊列,在讀取數據報文時先讀取已排序隊列中的數據報文,并在已排序隊列中的數據報文不滿足讀取需求時,在讀取當前排序隊列中的數據報文,并且在讀取當前排隊序列報文中會檢測當前排隊序列中已經完成排序的數據報文,這樣在讀取已排序隊列的數據報文的同時通過當前排隊序列同步進行數據報文排序,以及在讀取當前排序隊列中前部分存儲的數據報文的同時通過后部分進行數據報文排序,使得數據報文讀取和數據報文可以同步進行,不但可讀取到保序的數據報文,又可以提高數據報文的讀取效率,進而可以提高讀取操作的響應效率。
【技術實現步驟摘要】
本申請涉及通信技術,特別涉及一種數據報文的讀取方法、裝置、設備及存儲介質。
技術介紹
1、udp(userdatagramprotocol,用戶數據報協議)技術因其實時性和可靠性已被廣泛采用。相比于tcp(transmissioncontrolprotocol,傳輸控制協議),udp協議省去了建立連接和拆除連接的過程,取消了重發檢驗機制,極大地提高了數據通信的實時性,同時udp組播可以將數據從數據采集端同時發送到多臺分布式服務器進行主/備分布式運算,多節點的主/備分布式處理既提升了數據處理能力也避免了單節點故障影響整個系統的正常運行,極大地提高了整個系統數據處理的容量和可靠性。
2、在通過udp協議進行數據傳輸時,會存在數據報文亂序以及丟包情況。為了避免數據報文亂序的影響,普遍是先對數據報文進行重新排序,然后讀取排序后的數據報文。但是,目前普遍是先進行數據報文排序再響應讀取操作,這就導致數據報文的讀取操作需要等待數據報文排序完成,影響了數據報文讀取操作的響應效率。
3、因而現有技術還有待改進和提高。
技術實現思路
1、本申請要解決的技術問題在于,針對現有技術的不足,提供一種數據報文的讀取方法、裝置、設備及存儲介質。
2、為了解決上述技術問題,本申請第一方面提供了一種數據報文的讀取方法,其中,所述的數據報文的讀取方法包括:
3、響應數據報文的讀取指令,從預設的已排序隊列中讀取數據報文,其中,所述已排序隊列用于存儲已進行排序的數據報文;</p>4、當讀取到的數據報文未滿足讀取指令對應的讀取需求時,檢查預設的當前排序隊列的第一個放置位置是否放置數據報文,其中,所述當前排序隊列用于對接收到的報文數據進行排序;
5、當放置數據報文時,讀取以所述第一個放置位置的數據報文為起始數據報文的連續數據報文序列;
6、當未放置數據報文時,讀取所述第一個放置位置的空置時長;
7、當所述空置時長未達到預設時長時,控制讀取指令對應的讀取操作進入等待狀態,直至接收到第一個放置位置對應的數據報文或者空置時長達到預設時長;
8、當所述空置時長達到預設時長時,將所述第一個放置位置的后一放置位置作為所述第一個放置位置,并重新檢查第一個放置位置是否放置數據報文。
9、所述的數據報文的讀取方法,其中,所述已排序隊列和所述當前排序隊列中均存儲數據報文的報文指針。
10、所述的數據報文的讀取方法,其中,所述當前排序隊列對應報文序號段,并且所述報文序號段隨當前排序隊列的數據報文被讀出而滑動。
11、所述的數據報文的讀取方法,其中,所述讀取以所述第一個放置位置的數據報文為起始數據報文的連續數據報文序列之后,所述方法還包括:
12、在當前排序隊列中選取與連續數據報文序列中位于最后的數據報文所處的放置位置相鄰的目標放置位置;
13、將所述目標放置位置作為所述當前排序隊列的第一位放置位置,并在讀取到的數據報文未滿足讀取指令對應的讀取需求時,重新執行檢查預設的當前排序隊列的第一位放置位置是否放置數據報文。
14、所述的數據報文的讀取方法,其中,所述讀取所述第一個放置位置的空置時長具體包括:
15、讀取所述當前排序隊列所包含的數據報文的報文數量,并將所述報文數量作為第一個放置位置對應的空置時長。
16、所述的數據報文的讀取方法,其中,所述當放置數據報文時,讀取以所述第一個放置位置的數據報文為起始數據報文的連續數據報文序列具體包括:
17、當放置數據報文時,選取以所述第一個放置位置的數據報文為起始報文的連續數據報文序列,并獲取所述連續數據報文序列的報文數量;
18、當所述報文數量和已讀取數據報文未滿足讀取需求時,讀取所述連續數據報文序列;
19、當所述報文數量和已讀取數據報文滿足讀取需求時,根據所述讀取需求和所述已讀取數據報文確定待讀取報文數量,按照從前向后順序從所述連續數據報文序列中讀取待待讀取報文數量個數據報文,將連續數據報文序列中未被讀取的數據報文放置于已排序隊列。
20、所述的數據報文的讀取方法,其中,所述方法還包括:
21、當已排序隊列中讀取到的數據報文滿足讀取需求時,根據所述讀取需求對應的需求報文數量,按照從前向后順序從所述已排隊序列中讀取需求報文數量個數據報文。
22、本申請第二方面提供了一種數據報文的讀取裝置,其中,所述的數據報文的讀取裝置包括:
23、響應模塊,用于響應數據報文的讀取指令,從預設的已排序隊列中讀取數據報文,其中,所述已排序隊列用于存儲已進行排序的數據報文;
24、檢查模塊,用于當讀取到的數據報文未滿足讀取指令對應的讀取需求時,檢查預設的當前排序隊列的第一個放置位置是否放置數據報文,其中,所述當前排序隊列用于對接收到的報文數據進行排序;
25、獲取模塊,用于當放置數據報文時,讀取以所述第一個放置位置的數據報文為起始數據報文的連續數據報文序列;
26、讀取模塊,用于當未放置數據報文時,讀取所述第一個放置位置的空置時長;
27、等待模塊,用于當所述空置時長未達到預設時長時,控制讀取指令對應的讀取操作進入等待狀態,直至接收到第一個放置位置對應的數據報文或者空置時長達到預設時長;
28、控制模塊,用于當所述空置時長達到預設時長時,將所述第一個放置位置的后一放置位置作為所述第一個放置位置,并重新檢查第一個放置位置是否放置數據報文。
29、本申請第三方面提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執行,以實現如上任一所述的數據報文的讀取方法中的步驟。
30、本申請第四方面提供了一種終端設備,其包括:處理器和存儲器;
31、所述存儲器上存儲有可被所述處理器執行的計算機可讀程序;
32、所述處理器執行所述計算機可讀程序時實現如上任一所述的數據報文的讀取方法中的步驟。
33、有益效果:與現有技術相比,本申請提供了一種數據報文的讀取方法、裝置、設備及存儲介質,方法包括響應數據報文的讀取指令,從預設的已排序隊列中讀取數據報文,當讀取到的數據報文未滿足讀取指令對應的讀取需求時,檢查預設的當前排序隊列的第一個放置位置是否放置數據報文;當放置數據報文時,讀取以所述第一個放置位置的數據報文為起始數據報文的連續數據報文序列;當未放置數據報文時,讀取所述第一個放置位置的空置時長;當所述空置時長未達到預設時長時,控制讀取指令對應的讀取操作進入等待狀態,直至接收到第一個放置位置對應的數據報文或者空置時長達到預設時長;當所述空置時長達到預設時長時,將所述第一個放置位置的后一放置位置作為所述第一個放置位置,并重新檢查第一個放置位置是否放置數據報文。本申請實施例通過預先設置當前排序隊列和已排序隊列,在讀取數據報文時本文檔來自技高網
...
【技術保護點】
1.一種數據報文的讀取方法,其特征在于,所述的數據報文的讀取方法包括:
2.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述已排序隊列和所述當前排序隊列中均存儲數據報文的報文指針。
3.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述當前排序隊列對應報文序號段,并且所述報文序號段隨當前排序隊列的數據報文被讀出而滑動。
4.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述讀取以所述第一個放置位置的數據報文為起始數據報文的連續數據報文序列之后,所述方法還包括:
5.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述讀取所述第一個放置位置的空置時長具體包括:
6.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述當放置數據報文時,讀取以所述第一個放置位置的數據報文為起始數據報文的連續數據報文序列具體包括:
7.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述方法還包括:
8.一種數據報文的讀取裝置,其特征在于,所述的數據報文的讀取裝置包括:
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執行,以實現如權利要求1-7任意一項所述的數據報文的讀取方法中的步驟。
10.一種終端設備,其特征在于,包括:處理器和存儲器;
...
【技術特征摘要】
1.一種數據報文的讀取方法,其特征在于,所述的數據報文的讀取方法包括:
2.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述已排序隊列和所述當前排序隊列中均存儲數據報文的報文指針。
3.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述當前排序隊列對應報文序號段,并且所述報文序號段隨當前排序隊列的數據報文被讀出而滑動。
4.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述讀取以所述第一個放置位置的數據報文為起始數據報文的連續數據報文序列之后,所述方法還包括:
5.根據權利要求1所述的數據報文的讀取方法,其特征在于,所述讀取所述第一個放置位置的空置時長具...
【專利技術屬性】
技術研發人員:劉江,胡玉晟,許宇峰,
申請(專利權)人:柏科數據技術深圳股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。