wakaq
Version:
Background task queue for Node backed by Redis, a super minimal Celery
45 lines (44 loc) • 1.38 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Child = void 0;
class Child {
constructor(wakaq, process) {
this.done = false;
this.softTimeoutReached = false;
this.outputBuffer = '';
this._sigtermSent = false;
this._sigquitSent = false;
this.process = process;
this.lastPing = Math.round(Date.now() / 1000);
this.softTimeout = wakaq.softTimeout;
this.hardTimeout = wakaq.hardTimeout;
}
sigterm() {
if (this._sigtermSent)
return;
this.process.kill('SIGTERM');
this._sigtermSent = true;
}
sigkill() {
this.process.kill('SIGKILL');
}
sigquit() {
if (this._sigquitSent)
return;
this.process.kill('SIGQUIT');
this._sigquitSent = true;
}
setTimeouts(wakaq, task, queue) {
this.softTimeout = wakaq.softTimeout;
this.hardTimeout = wakaq.hardTimeout;
if (task && task.softTimeout)
this.softTimeout = task.softTimeout;
else if (queue && queue.softTimeout)
this.softTimeout = queue.softTimeout;
if (task && task.hardTimeout)
this.hardTimeout = task.hardTimeout;
else if (queue && queue.hardTimeout)
this.hardTimeout = queue.hardTimeout;
}
}
exports.Child = Child;