更新greok调度
This commit is contained in:
@@ -131,12 +131,17 @@ func (m *MaintenanceService) tick(ctx context.Context) {
|
|||||||
log.Printf("maintenance: roll_reset: %v", err)
|
log.Printf("maintenance: roll_reset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1b. Runway tokens have no refresh — once the JWT expiry (its reset marker)
|
// 1b. Runway/grok tokens have no refresh — once the reset marker passes, mark
|
||||||
// passes, mark them dead directly instead of letting them 401 on next use.
|
// them dead directly instead of letting them 401 on next use. Runway's
|
||||||
if n, err := m.tokens.ExpireByReset(ctx, "runway"); err != nil {
|
// marker is the JWT expiry; grok's is the credits reset (grok sso can't be
|
||||||
log.Printf("maintenance: expire_runway: %v", err)
|
// renewed either — 失效就失效 — so a purchased short-lived account that has
|
||||||
} else if n > 0 {
|
// lapsed by its reset time is treated as dead rather than re-scheduled).
|
||||||
log.Printf("maintenance: expired %d runway token(s)", n)
|
for _, pool := range []string{"runway", "grok"} {
|
||||||
|
if n, err := m.tokens.ExpireByReset(ctx, pool); err != nil {
|
||||||
|
log.Printf("maintenance: expire_%s: %v", pool, err)
|
||||||
|
} else if n > 0 {
|
||||||
|
log.Printf("maintenance: expired %d %s token(s)", n, pool)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1c. Proactively renew krea/imagine sessions ~10min before expiry so a
|
// 1c. Proactively renew krea/imagine sessions ~10min before expiry so a
|
||||||
|
|||||||
@@ -1451,7 +1451,11 @@ func (s *TokenService) Quota(ctx context.Context, pool, id string) (map[string]a
|
|||||||
meta["cached_quota_total"] = total
|
meta["cached_quota_total"] = total
|
||||||
}
|
}
|
||||||
patch["meta"] = meta
|
patch["meta"] = meta
|
||||||
if reset := strings.TrimSpace(stringValue(data["reset_after"])); reset != "" {
|
// Recovery time is the death deadline: the maintenance sweep expires a grok
|
||||||
|
// account once this marker passes (grok sso can't be renewed). Only stamp it
|
||||||
|
// when still unset (import couldn't resolve it) — never move it forward on a
|
||||||
|
// later refresh, so an admin opening 账号管理 can't push the death time out.
|
||||||
|
if reset := strings.TrimSpace(stringValue(data["reset_after"])); reset != "" && strings.TrimSpace(item.CachedQuotaResetAfter) == "" {
|
||||||
patch["cached_quota_reset_after"] = reset
|
patch["cached_quota_reset_after"] = reset
|
||||||
item.CachedQuotaResetAfter = reset
|
item.CachedQuotaResetAfter = reset
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user