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