異步任務服務

爲什麼要用異步?

在我們平時的業務系統中,文件導入,文件導出是一個很常見的業務需求。正常情況下,同步導出就可以滿足我們85%的需求。但是對於數據量大,業務拼接複雜的系統來說,導出超時,導入超時是不可避免的,而且是無法忍受的。異步能讓業務線程在後臺運行,沒有等待時間,處理完成通知出來就行了。

  • 異步導出的使用的特點: 處理耗時長、業務優先級低、容易超時、數據量大
  • 優點: 它能解決導出超時問題,能大大的提高接口請求處理速度,提高吞吐量,提升系統性能 任何事情都有兩面性,也許不具有絕對性,但是在這裏是成立的。既然它有那麼多優點,當然也會有缺點。

#### ### ## 設計原則

  • 支持大數據量場景下的excel導出。採用異步導出方式
  • 降低excel導出時的內存消耗。基於easyExcel再次封裝,支持excel定製化
  • 統一excel導出規範。後端導出接口統一化、前端導出交互組件化,簡化開發流程
  • 封裝公共導出方法,管理導出的整個生命週期。接入方只用關心業務邏輯,且代碼複用性高
  • 使用自定義線程池異步處理,避免導出佔用大量的服務器資源,影響業務接口正常響應
  • 引入文件系統。避免因導出文件過大、導出邏輯耗時過長帶來的請求超時等的問題

設計思路

  • 公共服務提供統一的excel導出接口,前端通過統一的接口來導出。統一導出接口會根據導出的url參數轉發請求到各業務方的接口實現上,並帶上導出參數

  • 公共組件包中提供通用異步導出方法。該方法封裝查庫、數據寫入excel、excel文件上傳、同步導出狀態等邏輯

  • 公共服務提供統一的獲取導出excel文件下載地址的方法,支持異步輪詢下載導出文件

  • 擴展點: 可在通用導出服務中添加導出審計日誌,記錄重要敏感數據的導出情況。並且可以添加導出權限控制、異常告警等擴展功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章