pipeproc
Version:
Multi-process log processing for nodejs
65 lines (64 loc) • 2.03 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = __importDefault(require("debug"));
const transaction_1 = require("./transaction");
const d = debug_1.default("pipeproc:node");
function disableProc(db, activeProcs, procName, callback) {
const myProc = activeProcs.find(p => p.name === procName);
if (!myProc) {
return callback(new Error("invalid_proc"));
}
if (myProc.status === "disabled") {
return callback(new Error("proc_already_disabled"));
}
d("disabling proc:", myProc.name);
const prefix = `~~system~~#proc#${myProc.topic}#${myProc.name}#`;
const tx = transaction_1.transaction(db);
tx.add({
key: `${prefix}status`,
value: "disabled"
});
tx.commitUpdate(function (err) {
if (err) {
callback(err);
}
else {
myProc.status = "disabled";
callback(null, myProc);
}
});
}
exports.disableProc = disableProc;
function resumeProc(db, activeProcs, procName, callback) {
const myProc = activeProcs.find(p => p.name === procName);
if (!myProc) {
return callback(new Error("invalid_proc"));
}
if (myProc.status === "active") {
return callback(new Error("proc_already_active"));
}
d("resuming proc:", myProc.name);
const tx = transaction_1.transaction(db);
const prefix = `~~system~~#proc#${myProc.topic}#${myProc.name}#`;
tx.add([{
key: `${prefix}status`,
value: "active"
}, {
key: `${prefix}reclaims`,
value: "0"
}]);
tx.commitUpdate(function (err) {
if (err) {
callback(err);
}
else {
myProc.status = "active";
myProc.reclaims = 0;
callback(null, myProc);
}
});
}
exports.resumeProc = resumeProc;
;