1. 程式人生 > 其它 >海量資料多執行緒非同步返回結果簡單案例

海量資料多執行緒非同步返回結果簡單案例

技術標籤:後端java

背景

  兩個系統做整合,由於資源有限,需要查詢每天的生產資料做報表分析。由於基礎資料有其他用途且演算法保密的情況下,沒辦法在資料方系統做完資料分析直接拿報表結果。所以必須要把基礎資料拿到後在報表方系統中計算。每小時取一次。資料大概在10W筆。

現有功能

   分頁獲取。引數必須傳頁碼。比如每頁取5000筆,那麼10萬筆得取20次。
   中間由於網路超時等各種原因,中斷則當前頁停止獲取,接著取下一頁或者重新取當頁。判斷獲取到的資料量小於5000筆,那就說明此次資料已取完。

瓶頸

網路中斷或者出錯等各種原因,接著取下一頁。那麼缺少的那一頁無法準確定位缺哪些資料。如果中斷繼續取當前頁資料。那麼中斷時間週期直接會影響後邊的資料獲取。

優化思路

資料需求方分頁獲取資料變為被動接收資料。如:發一次請求到資料提供方。資料提供方查詢資料總量,計算出合適的執行緒數量分批推送至資料需求方。

優點

利用執行緒使資料總體整合時間縮短,同時資料提供方可準確定位到失敗的資料範圍。

例項原始碼請下載
例項原始碼