@paroicms/server
Version:
The ParoiCMS server
34 lines • 1.65 kB
JavaScript
import { cleanupOldEventLogEntries } from "../admin-backend/event-log/event-log.queries.js";
import { cleanupExpiredHistoryEntries } from "../admin-backend/history/history.queries.js";
import { platformLogger } from "../context.js";
import { getActiveSiteContexts, unloadSiteContext } from "../site-context/site-context.js";
import { isShuttingDown } from "./shutdown.js";
export async function maintenanceTask() {
const siteContexts = getActiveSiteContexts();
for (const siteContext of siteContexts) {
if (isShuttingDown())
return;
if (siteContext.status === "ready") {
await siteMaintenanceTask(siteContext);
platformLogger.info(`[${siteContext.siteName}] Maintenance done`);
}
}
}
export async function siteMaintenanceTask(siteContext) {
await siteContext.imageCache.cleanUnusedValues();
await siteContext.textCache.cleanUnusedValues();
const deletedCount = await cleanupOldEventLogEntries(siteContext, { retainCount: 7000 });
if (deletedCount > 0) {
siteContext.logger.info(`Deleted ${deletedCount} old event log entries`);
}
const historyDeletedCount = await cleanupExpiredHistoryEntries(siteContext);
if (historyDeletedCount > 0) {
siteContext.logger.info(`Deleted ${historyDeletedCount} expired history entries`);
}
}
export async function unloadAllActiveSites() {
const siteContexts = Array.from(getActiveSiteContexts());
await Promise.all(siteContexts.map((siteContext) => unloadSiteContext(siteContext)));
platformLogger.debug("All sites unloaded gracefully");
}
//# sourceMappingURL=maintenance-task.js.map