保留平台模型 RPM、TPM 和并发策略语义,增加 PostgreSQL 集群级租约、饱和候选重选和多平台自动负载,避免突发任务固定等待首个平台。\n\n新增 Worker 实时负载采样、自适应 active/heavy 容量、心跳与管理端指标,并扩展本地 acceptance runner,覆盖三 Worker、同模型三平台 2/4/6 并发和 48 个带图视频突发任务。\n\n验证:go test ./...、go vet ./...、PostgreSQL 跨 Store 集成测试、gofmt、bash -n、ShellCheck 及本地集群 provider-burst 验收通过;48/48 成功,无越限、重复提交、重复计费、重复回调或终态资源泄漏。
29 lines
610 B
Go
29 lines
610 B
Go
package runner
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/easyai/easyai-ai-gateway/apps/api/internal/workerload"
|
|
)
|
|
|
|
type workerLoadLeaseContextKey struct{}
|
|
|
|
func workerLoadLease(ctx context.Context) *workerload.Lease {
|
|
lease, _ := ctx.Value(workerLoadLeaseContextKey{}).(*workerload.Lease)
|
|
return lease
|
|
}
|
|
|
|
func enterWorkerWaiting(ctx context.Context) error {
|
|
if lease := workerLoadLease(ctx); lease != nil {
|
|
return lease.EnterWaiting()
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func enterWorkerFinalizing(ctx context.Context) error {
|
|
if lease := workerLoadLease(ctx); lease != nil {
|
|
return lease.EnterFinalizing(ctx)
|
|
}
|
|
return nil
|
|
}
|