


























@@ -54,10 +54,6 @@ import {
5454clearSecretsRuntimeSnapshot,
5555getActiveSecretsRuntimeSnapshot,
5656} from "../secrets/runtime.js";
57-import {
58-getInspectableTaskRegistrySummary,
59-stopTaskRegistryMaintenance,
60-} from "../tasks/task-registry.maintenance.js";
6157import { createAuthRateLimiter, type AuthRateLimiter } from "./auth-rate-limit.js";
6258import { resolveGatewayAuth } from "./auth.js";
6359import {
@@ -381,6 +377,23 @@ function createGatewayStartupTrace() {
381377};
382378}
383379380+function collectProcessMemoryUsageMb(): ReadonlyArray<readonly [string, number]> {
381+const usage = process.memoryUsage();
382+const toMb = (bytes: number) => bytes / 1024 / 1024;
383+return [
384+["rssMb", toMb(usage.rss)],
385+["heapTotalMb", toMb(usage.heapTotal)],
386+["heapUsedMb", toMb(usage.heapUsed)],
387+["externalMb", toMb(usage.external)],
388+["arrayBuffersMb", toMb(usage.arrayBuffers)],
389+];
390+}
391+392+async function stopTaskRegistryMaintenanceOnDemand(): Promise<void> {
393+const { stopTaskRegistryMaintenance } = await import("../tasks/task-registry.maintenance.js");
394+stopTaskRegistryMaintenance();
395+}
396+384397type AuthRateLimitConfig = Parameters<typeof createAuthRateLimiter>[0];
385398386399function createGatewayAuthRateLimiters(rateLimitConfig: AuthRateLimitConfig | undefined): {
@@ -555,12 +568,13 @@ export async function startGatewayServer(
555568startDiagnosticHeartbeat(undefined, { getConfig: getRuntimeConfig });
556569}
557570setGatewaySigusr1RestartPolicy({ allowExternal: isRestartEnabled(cfgAtStart) });
571+let getActiveTaskCount = () => 0;
558572setPreRestartDeferralCheck(
559573() =>
560574getTotalQueueSize() +
561575getTotalPendingReplies() +
562576getActiveEmbeddedRunCount() +
563-getInspectableTaskRegistrySummary().active,
577+getActiveTaskCount(),
564578);
565579// Unconditional startup migration: seed gateway.controlUi.allowedOrigins for existing
566580// non-loopback installs that upgraded to v2026.2.26+ without required origins.
@@ -890,7 +904,7 @@ export async function startGatewayServer(
890904cron: runtimeState.cronState.cron,
891905heartbeatRunner: runtimeState.heartbeatRunner,
892906updateCheckStop: runtimeState.stopGatewayUpdateCheck,
893- stopTaskRegistryMaintenance,
907+stopTaskRegistryMaintenance: stopTaskRegistryMaintenanceOnDemand,
894908 nodePresenceTimers,
895909 broadcast,
896910tickInterval: runtimeState.tickInterval,
@@ -962,6 +976,7 @@ export async function startGatewayServer(
962976}),
963977);
964978runtimeState.bonjourStop = earlyRuntime.bonjourStop;
979+getActiveTaskCount = earlyRuntime.getActiveTaskCount;
965980runtimeState.skillsChangeUnsub = earlyRuntime.skillsChangeUnsub;
966981967982Object.assign(
@@ -1372,6 +1387,7 @@ export async function startGatewayServer(
13721387deferSidecars: opts.deferStartupSidecars === true,
13731388}),
13741389));
1390+startupTrace.detail("memory.ready", collectProcessMemoryUsageMb());
13751391startupTrace.mark("ready");
13761392postAttachRuntimeReturned = true;
13771393activateScheduledServicesWhenReady();
@@ -1433,6 +1449,7 @@ export async function startGatewayServer(
14331449 logCron,
14341450});
14351451}
1452+startupTrace.detail("memory.post-ready", collectProcessMemoryUsageMb());
14361453} catch (err) {
14371454await closeOnStartupFailure();
14381455throw err;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。