From d5b5d4b4cd63ab38952dcb2eb0f3eab7374c20e8 Mon Sep 17 00:00:00 2001 From: wangbo Date: Fri, 31 Jul 2026 08:09:17 +0800 Subject: [PATCH] =?UTF-8?q?perf(worker):=20=E7=BC=A9=E7=9F=AD=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E6=89=B9=E9=87=8F=E5=A1=AB=E6=A7=BD=E5=BB=B6=E8=BF=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将单次异步准入准备批次限制为 8 个任务,使双节点调度器以多个短事务批次渐进填满全局容量,避免准备 48 个媒体任务后才首次提交造成的长时间冷启动空槽。\n\n验证:Go 全量测试、go vet、runner/store race、gofmt、迁移安全检查通过。 --- apps/api/internal/runner/admission.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/api/internal/runner/admission.go b/apps/api/internal/runner/admission.go index 23b68d3..2c1660b 100644 --- a/apps/api/internal/runner/admission.go +++ b/apps/api/internal/runner/admission.go @@ -33,6 +33,7 @@ const ( asyncWorkerCapacityScopeKey = "global" asyncWorkerQueueLimit = 10000 asyncWorkerMaxWaitSeconds = 24 * 60 * 60 + asyncAdmissionBatchMax = 8 acceptanceQueueLimit = 10000 acceptanceQueueMaxWait = 15 * 60 synchronousAdmissionWakeMax = 256 @@ -707,8 +708,8 @@ func (s *Service) dispatchWaitingAsyncAdmissions(ctx context.Context) { if batchLimit <= 0 { batchLimit = 64 } - if batchLimit > 128 { - batchLimit = 128 + if batchLimit > asyncAdmissionBatchMax { + batchLimit = asyncAdmissionBatchMax } taskIDs, err := s.store.ListWaitingAsyncAdmissionTaskIDs(ctx, batchLimit) if err != nil {