我做了一堆API的調用一個網站,限制每小時的API調用的#。因爲我有時會撥打100k以上的電話,有時需要幾個小時才能獲得我需要的所有數據。我想構建一個循環,檢查API調用是否超過每小時的最大數量,如果超出,請檢查從何時開始到現在的時間差異。喜歡的東西循環相對於API調用#和時間間隔
startTime = Now()
For i = 1 To 150000
If counter <= 36000 Then
url = baseURL + Str(i) + "?apikey=" + apiKey
resp.Open "GET", url
resp.Send
' Process the response
counter = counter + 1
Else # More than 36,000 API calls have been made
Do
# Nothing in the loop, just waiting for 60 minutes to pass
While DateDiff(n, startTime, Now()) < 60
startTime = Now()
i = i - 1 # Need to re-loop on the current i
End If
Next i
我還沒有機會測試它,但在紙面上看起來它會工作,但看起來也像是一個黑客的工作(尤其是I = I - 1)。有沒有更好的方式來做我想做的事情?
像'OnTime'調用,但不應該'count'是靜態的? – Comintern
計數器和計時器可以重置,因爲直到小時結束時纔會再次調用子計數器。可能需要靜態的部分是OP的代碼。我無法分辨何時收集了所有數據。 OP將必須構建他的代碼,以這種方式,多次運行宏將仍然會產生預期的結果。 – 2016-09-30 00:19:18
有道理。 OP在URL中內置了'Str([loopcounter])'。我只是在想,重複使用'count'會更容易。 – Comintern