feat(acceptance): 建立同构验收与弹性容量体系
实现本地三节点 K3s 同构环境、脱敏生产快照、Gemini 图片和多参考图视频协议模拟、统一验收报告及故障注入。\n\n新增 Worker 容量控制器、资源与连接预算、任务恢复保护,并将生产验收拆分为 validation 执行和人工 CAS 放量。\n\n验证包括 Go 全量测试、PostgreSQL HTTP 集成测试、go vet、OpenAPI、ShellCheck、前端检查、迁移及发布脚本测试。
This commit is contained in:
@@ -731,6 +731,53 @@ SELECT
|
||||
t.Fatalf("recovered task left admissions=%d leases=%d", recoveredAdmissions, recoveredLeases)
|
||||
}
|
||||
|
||||
remoteRecoveryTask := createTask(true)
|
||||
if _, err := first.pool.Exec(ctx, `
|
||||
UPDATE gateway_tasks
|
||||
SET status = 'running',
|
||||
remote_task_id = 'remote-video-task',
|
||||
execution_token = gen_random_uuid(),
|
||||
execution_lease_expires_at = now() - interval '1 second'
|
||||
WHERE id = $1::uuid`,
|
||||
remoteRecoveryTask.ID,
|
||||
); err != nil {
|
||||
t.Fatalf("prepare persisted remote task recovery task: %v", err)
|
||||
}
|
||||
if _, err := first.pool.Exec(ctx, `
|
||||
INSERT INTO gateway_task_attempts (
|
||||
task_id, attempt_no, queue_key, status, upstream_submission_status
|
||||
)
|
||||
VALUES ($1::uuid, 1, 'integration-test', 'running', 'submitting')`,
|
||||
remoteRecoveryTask.ID,
|
||||
); err != nil {
|
||||
t.Fatalf("prepare persisted remote task recovery: %v", err)
|
||||
}
|
||||
recovery, err = first.RecoverInterruptedRuntimeState(ctx)
|
||||
if err != nil {
|
||||
t.Fatalf("recover persisted remote task: %v", err)
|
||||
}
|
||||
var remoteStatus, remoteErrorCode string
|
||||
var remoteAttemptRetryable bool
|
||||
if err := first.pool.QueryRow(ctx, `
|
||||
SELECT task.status, COALESCE(task.error_code, ''), attempt.retryable
|
||||
FROM gateway_tasks task
|
||||
JOIN gateway_task_attempts attempt ON attempt.task_id = task.id
|
||||
WHERE task.id = $1::uuid`, remoteRecoveryTask.ID).Scan(
|
||||
&remoteStatus,
|
||||
&remoteErrorCode,
|
||||
&remoteAttemptRetryable,
|
||||
); err != nil {
|
||||
t.Fatalf("read persisted remote task recovery: %v", err)
|
||||
}
|
||||
if remoteStatus != "queued" || remoteErrorCode != "" || !remoteAttemptRetryable {
|
||||
t.Fatalf(
|
||||
"persisted remote task recovery status=%s code=%s retryable=%t, want queued resume",
|
||||
remoteStatus,
|
||||
remoteErrorCode,
|
||||
remoteAttemptRetryable,
|
||||
)
|
||||
}
|
||||
|
||||
lockedRecoveryTask := createTask(true)
|
||||
unlockedRecoveryTask := createTask(true)
|
||||
if _, err := first.pool.Exec(ctx, `
|
||||
|
||||
Reference in New Issue
Block a user