Spaces:
Running
Running
File size: 1,893 Bytes
c7d34c1 96bdf6c c7d34c1 96bdf6c c7d34c1 96bdf6c c7d34c1 96bdf6c 704e84f c7d34c1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | type StartupRecoveryDeps = {
recoverAgentStateOnStartup: () => Promise<number>;
appLogger: {
info(message: string, context?: unknown): void;
error(message: string, context?: unknown): void;
};
};
type ServerStartupDeps = StartupRecoveryDeps & {
startWebuiImageCleanupScheduler: () => Promise<unknown>;
};
export async function register() {
if (process.env.NEXT_RUNTIME !== 'nodejs') return;
const [{ recoverAgentStateOnStartup }, { appLogger }, { startWebuiImageCleanupScheduler }] = await Promise.all([
import('./lib/agent-state-runtime'),
import('./lib/app-logger'),
import('./lib/webui-image-cleanup-runtime')
]);
await runServerStartup({
recoverAgentStateOnStartup,
startWebuiImageCleanupScheduler,
appLogger
});
}
export async function runServerStartup(deps: ServerStartupDeps): Promise<void> {
await runAgentStateStartupRecovery(deps);
startWebuiImageCleanupScheduler(deps);
}
function startWebuiImageCleanupScheduler(deps: ServerStartupDeps): void {
deps.appLogger.info('开始启动 WebUI 图片自动清理。');
void Promise.resolve()
.then(async () => await deps.startWebuiImageCleanupScheduler())
.then(
() => deps.appLogger.info('WebUI 图片自动清理启动完成。'),
(error) => deps.appLogger.error('WebUI 图片自动清理启动失败。', error)
);
}
export async function runAgentStateStartupRecovery(deps: StartupRecoveryDeps): Promise<void> {
try {
deps.appLogger.info('开始执行 Agent 状态启动恢复。');
const recovered = await deps.recoverAgentStateOnStartup();
deps.appLogger.info('Agent 状态启动恢复完成。', { recovered });
} catch (error) {
deps.appLogger.error('Agent 状态启动恢复失败。', error);
throw error;
}
}
|