iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0

我進行大量測試之後,發現這個查詢的速度相當地慢,有一次我將 airflow 設計每分鐘都跑(但實際上會等上一個排程跑完才會跑下一個,一個排程跑相當地久,retry 設計 10次也要半小時左右)

這個查詢速度實在太慢了,如果有很多張發票我可能要查到不知道民國幾年QQ

而這個問題也困擾我許久 (一直以為就是財政部的鍋)

https://ithelp.ithome.com.tw/upload/images/20230923/20114380B9khK2m7uW.png

我當時使用的 tw_invoice 版本是 2023.04.9,後來我才發現是需要加上 timeout 機制, 該套件沒有加上 timeout 會導致 API pending 過久

如果加上 timeout ,可以發現 log 的間隔時間有效地被縮短

https://ithelp.ithome.com.tw/upload/images/20230923/201143807ZeAjFNRVZ.png

進行這個小實驗很簡單,在原始碼有 check_api_error 的部分加上 timeout 即可

results = check_api_error(
            self.session.post(URL, data=data, timeout=(1,1))
        )

明天我將介紹我如何跟作者提交 PR,也請大家不要錯過啦XD


上一篇
Day 28:設計查詢載具發票 DAG - 2
下一篇
Day 30:向 tw_invoice 作者提交 PR
系列文
透過 python 建立發票系統 - 自己的發票自己查30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言