UNPKG

simple-job-scheduler

Version:

A simple job scheduling system written in TypeScript

42 lines 2.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Job = void 0; const simple_logging_system_1 = require("simple-logging-system"); const logger = new simple_logging_system_1.Logger('Job'); class Job { constructor(name, runnable, intervalInMillis, cancelHandle) { this.name = name; this.runnable = runnable; this.intervalInMillis = intervalInMillis; this.cancelHandle = cancelHandle; this.executionsCount = 0; this.isCancelledState = false; } execute() { try { this.runnable(this); this.executionsCount += 1; } catch (e) { logger.error(`An error occurred while executing the job "${this.name}"`, e); } } getExecutionsCount() { return this.executionsCount; } isCancelled() { return this.isCancelledState; } cancel() { if (this.isCancelledState) { logger.warn(`Trying to cancel an already cancelled job named "${this.name}"`); return false; } logger.info(`Cancelling job "${this.name}" after ${this.executionsCount} executions.`); this.isCancelledState = true; return this.cancelHandle(); } static get [Symbol.for("___CTOR_NAME___")]() { return "Job"; } } exports.Job = Job; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSm9iLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9Kb2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBQStDO0FBRS9DLE1BQU0sTUFBTSxHQUFHLElBQUksOEJBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVqQyxNQUFhLEdBQUc7SUFLZCxZQUNXLElBQVksRUFDWixRQUE2QixFQUM3QixnQkFBd0IsRUFDaEIsWUFBMkI7UUFIbkMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUU1QyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSTtZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUM7U0FDM0I7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsOENBQThDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM3RTtJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUM5RSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksV0FBVyxJQUFJLENBQUMsZUFBZSxjQUFjLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7O0NBQ0Y7QUF6Q0Qsa0JBeUNDIn0=