feat: log elapsed cron job time (#742)
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import cron from "node-cron";
|
import cron from "node-cron";
|
||||||
|
|
||||||
|
import { Stopwatch } from "@homarr/common";
|
||||||
import type { MaybePromise } from "@homarr/common/types";
|
import type { MaybePromise } from "@homarr/common/types";
|
||||||
|
|
||||||
import type { Logger } from "./logger";
|
import type { Logger } from "./logger";
|
||||||
@@ -27,9 +28,14 @@ const createCallback = <TAllowedNames extends string, TName extends TAllowedName
|
|||||||
const catchingCallbackAsync = async () => {
|
const catchingCallbackAsync = async () => {
|
||||||
try {
|
try {
|
||||||
creatorOptions.logger.logDebug(`The callback of '${name}' cron job started`);
|
creatorOptions.logger.logDebug(`The callback of '${name}' cron job started`);
|
||||||
|
const stopwatch = new Stopwatch();
|
||||||
await creatorOptions.beforeCallback?.(name);
|
await creatorOptions.beforeCallback?.(name);
|
||||||
|
const beforeCallbackTook = stopwatch.getElapsedInHumanWords();
|
||||||
await callback();
|
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);
|
await creatorOptions.onCallbackSuccess?.(name);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
creatorOptions.logger.logError(error);
|
creatorOptions.logger.logError(error);
|
||||||
|
|||||||
Reference in New Issue
Block a user