fix(routing): 将 admission 排队计入平台负载
候选路由此前只统计 River 队列和历史尝试,未统计尚未生成 River Job 的异步 admission 等待任务,突发提交会集中绑定同一高优先级平台,导致其他平台容量闲置。\n\n将等待中的 gateway_task_admissions 纳入平台模型排队负载,并通过 task_id 去重保留原有统计语义,使候选路由可以在集群 admission 阶段按并发利用率分流。\n\n验证:\n- go test ./internal/store ./internal/runner -count=1\n- go vet ./internal/store ./internal/runner\n- gofmt -l internal/store/candidates.go
This commit is contained in:
@@ -104,9 +104,17 @@ LEFT JOIN (
|
||||
AND expires_at > statement_timestamp()
|
||||
GROUP BY scope_key
|
||||
) con ON con.scope_key = $5::text || m.id::text
|
||||
LEFT JOIN (
|
||||
LEFT JOIN (
|
||||
SELECT queued_sources.platform_model_id, COUNT(DISTINCT queued_sources.task_id) AS waiting
|
||||
FROM (
|
||||
SELECT admission.task_id::text AS task_id,
|
||||
admission.platform_model_id::text AS platform_model_id
|
||||
FROM gateway_task_admissions admission
|
||||
JOIN gateway_tasks admission_task ON admission_task.id = admission.task_id
|
||||
WHERE admission.status = 'waiting'
|
||||
AND admission_task.status = 'queued'
|
||||
AND admission_task.next_run_at <= now()
|
||||
UNION ALL
|
||||
SELECT t.id::text AS task_id, qm.id::text AS platform_model_id
|
||||
FROM gateway_tasks t
|
||||
JOIN integration_platforms qp ON TRUE
|
||||
|
||||
Reference in New Issue
Block a user