JAVA實作定時任務介面,定時按時間增量去同步第三方系統的資料,第三方介面有資料量限制(1000),請問在某次呼叫第三方介面時獲取到了1000條記錄,在存盤到自有資料庫時,比如第200條記錄出現例外存盤失敗,這時候你們是怎么處理的呀?請各位指點指點!
uj5u.com熱心網友回復:
批量存盤,加事務,報錯回滾,重試uj5u.com熱心網友回復:
重試還是失敗怎么辦?不能一直重試吧。
uj5u.com熱心網友回復:
那你定義一個機制唄 錯誤幾次后 存到例外表中uj5u.com熱心網友回復:
假如3000條資料,批處理1000,分3批,第一批沒問題其余報錯,有三種常見錯誤:1,主鍵沖突資料重復,解決方案:把資料分成兩波,一波insert,一波update
2,資料型別不匹配,解決方案:做好資料型別轉換,字串/日期時間/整型/浮點型四種型別足矣
3,欄位長度不夠,解決方案:根據例外資訊找到相應欄位,執行alter table xxx change ....陳述句
我們自主研發的ETL遇到這三種情況由程式自動解決,不用人工干預,并且有網頁版操作界面
如果出現第四種情況,就發郵件預警
uj5u.com熱心網友回復:
一般情況下是批量讀取,然后,逐條處理。如果某條記錄在處理的時候出現例外,通常的做法是將錯誤資訊保存下來(資料庫或者寫硬碟日志)。
錯誤資訊盡量完整,也就是說,關鍵的背景關系資料,最好是同時保存下來,當然,也包括例外資訊。
這樣有助于排查問題。
之后,撰寫一個針對錯誤資訊的處理程式,針對各種例外情況進行錯誤資訊的處理,逐漸修復和完善程式。
重試機制,一般情況下,并不能容錯所有的例外情況,并且,要設定最大重試次數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47793.html
標籤:Java EE
下一篇:幫忙編一下華容道程式,有點難
