UNPKG

pipeproc

Version:

Multi-process log processing for nodejs

65 lines (64 loc) 2.03 kB
"use strict"; 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;