fix(gateway): preserve affinity during quota telemetry

This commit is contained in:
RWDai
2026-05-21 21:51:08 +08:00
parent 965a8c79af
commit 26ee1a9958
2 changed files with 17 additions and 2 deletions

View File

@@ -424,7 +424,7 @@ async fn sync_grok_quota_from_report_context(
updated_key.updated_at_unix_secs = Some(now_unix_secs);
Ok(state
.update_provider_catalog_key(&updated_key)
.update_provider_catalog_key_runtime_state(&updated_key)
.await?
.is_some())
}
@@ -721,7 +721,7 @@ async fn sync_codex_quota_from_response_headers(
updated_key.updated_at_unix_secs = Some(now_unix_secs);
let updated = state
.update_provider_catalog_key(&updated_key)
.update_provider_catalog_key_runtime_state(&updated_key)
.await?
.is_some();
if updated {

View File

@@ -615,6 +615,21 @@ impl AppState {
Ok(updated)
}
pub(crate) async fn update_provider_catalog_key_runtime_state(
&self,
key: &provider_catalog::StoredProviderCatalogKey,
) -> Result<Option<provider_catalog::StoredProviderCatalogKey>, GatewayError> {
let updated = self
.data
.update_provider_catalog_key(key)
.await
.map_err(|err| GatewayError::Internal(err.to_string()))?;
if updated.is_some() {
self.invalidate_provider_health_routing_caches();
}
Ok(updated)
}
pub(crate) async fn update_provider_catalog_key_upstream_metadata(
&self,
key_id: &str,