feat: log elapsed cron job time (#742)

This commit is contained in:
Manuel
2024-07-03 19:47:13 +02:00
committed by GitHub
parent 15f3493b5b
commit 1cf119c768

View File

@@ -1,5 +1,6 @@
import cron from "node-cron";
import { Stopwatch } from "@homarr/common";
import type { MaybePromise } from "@homarr/common/types";
import type { Logger } from "./logger";
@@ -27,9 +28,14 @@ const createCallback = <TAllowedNames extends string, TName extends TAllowedName
const catchingCallbackAsync = async () => {
try {
creatorOptions.logger.logDebug(`The callback of '${name}' cron job started`);
const stopwatch = new Stopwatch();
await creatorOptions.beforeCallback?.(name);
const beforeCallbackTook = stopwatch.getElapsedInHumanWords();
await callback();
creatorOptions.logger.logInfo(`The callback of '${name}' cron job succeeded`);
const callbackTook = stopwatch.getElapsedInHumanWords();
creatorOptions.logger.logInfo(
`The callback of '${name}' cron job succeeded (before callback took ${beforeCallbackTook}, callback took ${callbackTook})`,
);
await creatorOptions.onCallbackSuccess?.(name);
} catch (error) {
creatorOptions.logger.logError(error);