
最近在為了減少 StickerAction 對外部的 request 數量作處理, 花了好一些工夫 XD 因為 wretch 那邊大概只要有 50 個 request(一小時或半小時, 阿災), 就會被先前 xdite大大 說的 Yahoo 金鐘罩檔掉了。 請見上圖 Yahoo 999 XD
所以昨天寫了一段 code 來對幾個台灣已知的 BSP 作 request 數量的限制, 目前對於 wretch 限制在每個小時 30 個 request, 今天運作了一天, 都還滿正常的, 沒有再被檔掉的情形。
程式就是用以下變數來作控制
- limit 寫定限制的次數
- interval 寫定多久時間內可以存取多少次 limit 的次數
- count 記錄存取次數
- time 記錄第一次存取的時間
基本上就是 count 還沒到達 limit 都可以一直對外部作存取, 然後隨著存取次數, count 會一直往上加, 一直到達 limit 限制的次數, 就不在對外部作存取, 一直到 time + interval 的時間到了, 就可以將 time 跟 count 作重置, 然後才再繼續存取。
之前再公司也寫過一個, 跟上面這段類似的存取限制, 不過是反過來的, 然後稍微再複雜一點。 不過這類的應用應該各位大大早就很熟悉了 XD
One Trackback
[...] 所以為了搭配上一篇所提到的存取控制, 計算這次是否有對外部做了 request, 所以寫了下面這一段, 來判斷是否有對外存取, 進而做存取控制。 [...]