UNPKG

toad-scheduler

Version:

In-memory Node.js and browser job scheduler

34 lines 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Task = exports.isSyncTask = void 0; const Logger_1 = require("./Logger"); const Utils_1 = require("./Utils"); function isSyncTask(task) { return task.isAsync === false; } exports.isSyncTask = isSyncTask; class Task { constructor(id, handler, errorHandler) { this.isAsync = false; this.id = id; this.handler = handler; this.errorHandler = errorHandler || (0, Logger_1.defaultErrorHandler)(this.id); this.isExecuting = false; } execute(jobId) { this.isExecuting = true; try { this.handler(this.id, jobId); } catch (err) { const errorHandleResult = this.errorHandler(err); if ((0, Utils_1.isPromise)(errorHandleResult)) { // If we fail while handling an error, oh well errorHandleResult.catch((0, Logger_1.loggingErrorHandler)(err)); } } this.isExecuting = false; } } exports.Task = Task; //# sourceMappingURL=Task.js.map