Fixed bugs on API key pool
This commit is contained in:
@@ -705,14 +705,18 @@ namespace URLNotesGrabberCORE
|
||||
int retry = response.retryInSeconds > 0 ? response.retryInSeconds : 60;
|
||||
ApiKeyPool.MarkRateLimited(key, retry);
|
||||
|
||||
int remaining = retry;
|
||||
DateTime retryUntil = DateTime.Now.AddSeconds(retry);
|
||||
while (remaining > 0)
|
||||
if (ApiKeyPool.IsAllRateLimited(out int minRetry))
|
||||
{
|
||||
Console.WriteLine("Sleeping for {0} more seconds, until {1}", remaining, retryUntil.ToShortTimeString());
|
||||
int sleepSeconds = Math.Min(60, remaining);
|
||||
Thread.Sleep(sleepSeconds * 1000);
|
||||
remaining -= sleepSeconds;
|
||||
Console.WriteLine($"[Pool] All keys rate-limited, waiting {minRetry}s before retry");
|
||||
int remaining = minRetry;
|
||||
DateTime retryAt = DateTime.Now.AddSeconds(minRetry);
|
||||
while (remaining > 0)
|
||||
{
|
||||
Console.WriteLine("Sleeping for {0} more seconds, until {1}", remaining, retryAt.ToShortTimeString());
|
||||
int sleepSeconds = Math.Min(60, remaining);
|
||||
Thread.Sleep(sleepSeconds * 1000);
|
||||
remaining -= sleepSeconds;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -933,10 +937,19 @@ namespace URLNotesGrabberCORE
|
||||
{
|
||||
int retry = response.retryInSeconds > 0 ? response.retryInSeconds : 60;
|
||||
ApiKeyPool.MarkRateLimited(key, retry);
|
||||
for (int s = 0; s <= response.retryInSeconds; s += 60)
|
||||
|
||||
if (ApiKeyPool.IsAllRateLimited(out int minRetry))
|
||||
{
|
||||
Console.WriteLine("Sleeping for {0} more seconds, until {1}", response.retryInSeconds - s, DateTime.Now.AddSeconds(response.retryInSeconds - s).ToShortTimeString());
|
||||
Thread.Sleep(60000);
|
||||
Console.WriteLine($"[Pool] All keys rate-limited, waiting {minRetry}s before returning");
|
||||
int remaining = minRetry;
|
||||
DateTime retryAt = DateTime.Now.AddSeconds(minRetry);
|
||||
while (remaining > 0)
|
||||
{
|
||||
Console.WriteLine("Sleeping for {0} more seconds, until {1}", remaining, retryAt.ToShortTimeString());
|
||||
int sleepSeconds = Math.Min(60, remaining);
|
||||
Thread.Sleep(sleepSeconds * 1000);
|
||||
remaining -= sleepSeconds;
|
||||
}
|
||||
}
|
||||
return response.statusCode;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user