Files
electric-cherry/src/lib/server/maintenance/index.ts
T

19 lines
839 B
TypeScript

import { maintenancePolicies } from './policies.js';
import { watchdogOverview, watchdogTick } from './recovery.js';
import { maintenanceTick, plutoniumStatus } from './runtime.js';
import type { MaintenanceOverview } from '../../maintenance.js';
export function maintenanceOverview(selectedJob: number | null = null): MaintenanceOverview {
return {
policies: maintenancePolicies(),
recovery: watchdogOverview(),
runtime: plutoniumStatus(selectedJob)
};
}
export async function runMaintenance(): Promise<void> {
// One failing observer must not prevent the other capabilities from reconciling.
const results = await Promise.allSettled([maintenanceTick(), watchdogTick()]);
for (const result of results)
if (result.status === 'rejected') console.error('[maintenance]', result.reason);
}