我進行大量測試之後,發現這個查詢的速度相當地慢,有一次我將 airflow 設計每分鐘都跑(但實際上會等上一個排程跑完才會跑下一個,一個排程跑相當地久,retry 設計 10次也要半小時左右)
這個查詢速度實在太慢了,如果有很多張發票我可能要查到不知道民國幾年QQ
而這個問題也困擾我許久 (一直以為就是財政部的鍋)
我當時使用的 tw_invoice 版本是 2023.04.9,後來我才發現是需要加上 timeout 機制, 該套件沒有加上 timeout 會導致 API pending 過久
如果加上 timeout ,可以發現 log 的間隔時間有效地被縮短
進行這個小實驗很簡單,在原始碼有 check_api_error 的部分加上 timeout 即可
results = check_api_error(
self.session.post(URL, data=data, timeout=(1,1))
)
明天我將介紹我如何跟作者提交 PR,也請大家不要錯過啦XD