isTaskRunningWithTimeout
function isTaskRunningWithTimeout(
db: DBConnection,
provider: DBProvider,
taskType: string,
timeOutInHours: number
): string;
Die Funktion isTaskRunningWithTimeout prüft, ob aktuell ein Job des angegebenen taskType aktiv läuft, und erkennt dabei hängen gebliebene Ausführungen anhand eines Timeouts.
Für jeden laufenden Job wird geprüft, ob das startDate länger als timeOutInHours Stunden zurückliegt. Ist das der Fall, wird der Job in der Datenbank-Tabelle taskAudit auf den Status failed gesetzt und mit der Fehlermeldung "Task Timeout Exceeded" versehen. Liegt das startDate innerhalb des Timeout-Fensters, gilt der Job als aktiv.
Der Rückgabewert ist die taskId des aktiv laufenden Jobs. Ist kein Job aktiv (entweder läuft keiner oder alle wurden als Timeout markiert), wird ein leerer String zurückgegeben.
Beispiele
Aufruf im PortalScript:
const { isTaskRunningWithTimeout } = require("ou.sp.TaskAudit");
const { getDatabaseConnectionAndProviderOrThrow } = require("ou.sp.library.dbConnections");
const { db, provider } = getDatabaseConnectionAndProviderOrThrow("ousp");
const activeTaskId = isTaskRunningWithTimeout(db, provider, "masterDataUpload", 2);
if (activeTaskId) {
context.returnValue = `Job läuft bereits: ${activeTaskId}`;
} else {
context.returnValue = "Kein aktiver Job – Start möglich.";
}