Fixed bugs on API key pool

This commit is contained in:
jim
2026-05-03 13:59:51 -05:00
parent 6cec7afb53
commit 34e5745e99
2 changed files with 45 additions and 10 deletions
+23 -10
View File
@@ -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;
}