toad-scheduler
Version:
In-memory Node.js and browser job scheduler
34 lines • 1.09 kB
JavaScript
;
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