調用接口超時怎么辦?
接囗超時解決辦法:
1.增加超時時間
假設A系統有個方法methodA,會調用B系統的methodB這個http接口,如果mehodA不追求超快的響應速度,那么你在調用methodB這個http接口時,可以增長超時時間,例如10秒超時。因為經常在某些時刻,由于網絡原因或者系統原因,調用method會超時的。
2.嘗試多調用一次
如果第一次調用methodB超時了,那么你可以嘗試多調用一次。當然前提是,methodA不追求超快的響應時間。注意:調用多次不代表重復調用 制造臟數據
3.使用待處理隊列
如果methodA需要很快的響應速度,那么當調用methodB接口超時時,可以使用一個隊列存儲本次失敗的記錄,然后使用一個job每隔一段時間去掃這個隊列,看看是否有待處理的數據。
備注:如果對方系統掛掉了,使用待處理隊列的方式,比較合適。
4.回滾數據
catch這個超時異常,然后記錄日志后,拋出這個異常,并把之前的數據回滾。讓對方的系統重新調用。
備注:寧愿沒有數據,也不要存儲臟數據。
5.使用異步機制
如果你的業務方法中,需要調用對方的http接口,如果這個http接口不影響主流程的,那么可以使用一個線程,異步調用對方的http接口,并把超時時間設置長一些。由于使用了異步,主流程會立刻繼續走的。
6.使用緩存機制
使用一臺緩存服務器,每次調用先調用我們的緩存服務器里面的數據,來實現快速調用解決超時問題。
上一篇dw2021使用教程