perf(worker): 持久化准入快照提升队列吞吐
原因:线上 P24 验收显示 Worker 在每轮准入前逐条恢复媒体、重算候选和查询 attempts,跨地域查询导致 48 个执行槽长期只能使用约 8 至 16 个。\n\n影响:任务首次排队时保存鉴权后的 admission scope 快照,Worker 单次批量读取并只刷新动态总容量;显式重新选路保留完整慢路径。验收模拟器改到非数据库专用 Worker 节点,运行期 85% 作为立即中止硬门禁,80% 继续作为容量认证目标。\n\n验证:Go 全量测试、go vet、govulncheck、真实 PostgreSQL 迁移与跨 Store 集成测试、ShellCheck、发布及验收脚本、OpenAPI、前端 lint/test/build、pnpm audit high、Compose 与 Kubernetes 渲染均通过。
This commit is contained in:
@@ -2,10 +2,43 @@ package runner
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/easyai/easyai-ai-gateway/apps/api/internal/store"
|
||||
)
|
||||
|
||||
func TestAdmissionInputFromSnapshotRefreshesWorkerCapacity(t *testing.T) {
|
||||
admission := store.TaskAdmission{
|
||||
TaskID: "task-1",
|
||||
PlatformID: "platform-1",
|
||||
PlatformModelID: "model-1",
|
||||
UserGroupID: "group-1",
|
||||
QueueKey: "queue-1",
|
||||
Mode: "async",
|
||||
Priority: 7,
|
||||
Scopes: []store.AdmissionScope{
|
||||
{ScopeType: "platform_model", ScopeKey: "model-1", ConcurrentLimit: 10},
|
||||
{ScopeType: "worker_capacity", ScopeKey: "global", ConcurrentLimit: 48},
|
||||
},
|
||||
ReselectRequestedAt: time.Time{},
|
||||
}
|
||||
|
||||
input := admissionInputFromSnapshot(admission, 24)
|
||||
|
||||
if input.TaskID != admission.TaskID || input.PlatformModelID != admission.PlatformModelID || len(input.Scopes) != 2 {
|
||||
t.Fatalf("unexpected admission input: %+v", input)
|
||||
}
|
||||
if input.Scopes[1].ConcurrentLimit != 24 {
|
||||
t.Fatalf("worker capacity=%v, want 24", input.Scopes[1].ConcurrentLimit)
|
||||
}
|
||||
if input.Scopes[0].ConcurrentLimit != 10 {
|
||||
t.Fatalf("business scope changed: %+v", input.Scopes[0])
|
||||
}
|
||||
if admission.Scopes[1].ConcurrentLimit != 48 {
|
||||
t.Fatalf("snapshot was mutated: %+v", admission.Scopes[1])
|
||||
}
|
||||
}
|
||||
|
||||
func TestDistributedAdmissionModelTypeBoundary(t *testing.T) {
|
||||
for _, modelType := range []string{
|
||||
"image_generate", "image_edit", "image_analysis", "image_vectorize",
|
||||
|
||||
Reference in New Issue
Block a user