增强 Codex 用量读取重试
This commit is contained in:
parent
2ab6a4e4b0
commit
704f8a4e5d
@ -548,12 +548,13 @@ class CodexRateLimitReader:
|
||||
if now < self.next_refresh:
|
||||
return self.cached
|
||||
|
||||
self.next_refresh = now + self.refresh_seconds
|
||||
if not self._ensure_started():
|
||||
self.next_refresh = now + min(10.0, self.refresh_seconds)
|
||||
return self.cached
|
||||
|
||||
request_id = self._send("account/rateLimits/read")
|
||||
if request_id is None:
|
||||
self.next_refresh = now + min(10.0, self.refresh_seconds)
|
||||
return self.cached
|
||||
|
||||
message = self._wait_for(request_id, 8.0)
|
||||
@ -561,8 +562,10 @@ class CodexRateLimitReader:
|
||||
rate_limits = result.get("rateLimits") if isinstance(result, dict) else None
|
||||
if not isinstance(rate_limits, dict):
|
||||
self._stop()
|
||||
self.next_refresh = now + min(10.0, self.refresh_seconds)
|
||||
return self.cached
|
||||
|
||||
self.next_refresh = now + self.refresh_seconds
|
||||
primary = rate_limits.get("primary") or {}
|
||||
secondary = rate_limits.get("secondary") or {}
|
||||
reset_credits = result.get("rateLimitResetCredits") or {}
|
||||
@ -624,20 +627,23 @@ class CodexRateLimitReader:
|
||||
if now < self.next_usage_refresh:
|
||||
return self.usage_cached
|
||||
|
||||
self.next_usage_refresh = now + self.usage_refresh_seconds
|
||||
if not self._ensure_started():
|
||||
self.next_usage_refresh = now + min(15.0, self.usage_refresh_seconds)
|
||||
return self.usage_cached
|
||||
|
||||
request_id = self._send("account/usage/read")
|
||||
if request_id is None:
|
||||
self.next_usage_refresh = now + min(15.0, self.usage_refresh_seconds)
|
||||
return self.usage_cached
|
||||
|
||||
message = self._wait_for(request_id, 8.0)
|
||||
result = message.get("result") if message else None
|
||||
buckets = result.get("dailyUsageBuckets") if isinstance(result, dict) else None
|
||||
if not isinstance(buckets, list) or not buckets:
|
||||
self.next_usage_refresh = now + min(15.0, self.usage_refresh_seconds)
|
||||
return self.usage_cached
|
||||
|
||||
self.next_usage_refresh = now + self.usage_refresh_seconds
|
||||
self.usage_cached = self._daily_bars_from_buckets(buckets)
|
||||
return self.usage_cached
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user