場景
票據驗真需要調用接口。接口需要遠程調用,速度不是恨快。而數據庫的票據數量卻可以很多。 所以需要驗真策略。 控制數據,避免大量數據造成壓力,甚至阻塞。
新票據需要驗真。
驗真不通過的票據,需要定時驗真。
解決方案
對於老票
可能由於金額,或者日期不對。 造成不通過。如果不改對金額,即使再驗一萬次,也是不通過。
問題是改票據成本太高,有的票據甚至連圖片也找不到了,想改也沒法改。
但是狀態是失敗, 定時任務能跑到。會造成資源浪費。
方案:
改爲不受定時任務觸發的狀態。例如29。
驗真中的票
策略中可能限定了查1萬張。 隨機抽1千張。 然後再選前50。如果有大量金額錯誤的發票。規則校驗雖然能通過。 但是驗真肯定不通過。 如果存在大量的話,很有可能多次輪詢到的都是不通過的發票。造成新增的發票無法正常輪詢到。
方案:
也是改爲其他狀態,不被觸發,如39。