node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

memory-pressure

memory-pressure

Event emitter related to memory usage & pressure

Install

npm install memory-pressure --save

Usage

By default, a default instance is created when requiring the module.

 
const pressure = require("memory-pressure"),
      byDefault = pressure.default,
      own = pressure.new("ownInstance", {
              memoryThreshold: 200 * 1000000, //200MB 
              interval: 1000, //1sec 
              stillUnderPressure: 20, //If still blocked after 20 check calls, emits `stillUnderPressure` event 
              consecutiveGrowths: 5
      });
 
byDefault.on("underPressure", function (memoryUsage) { //memoryUsage is the object returned by process.memoryUsage() 
    //Do some stuff to release pressure 
    pressure.default.ack(); //Ready for next state (required) 
});
 
byDefault.on("stillUnderPressure", function (memoryUsage) { //This event is emitted if you did not manage to release memory after `underPressure` event 
    pressure.default.ack(); //Ready for next state 
});
 
byDefault.on("pressureReleased", function (memoryUsage) {
    pressure.default.ack(); //Ready for next state 
});
 
pressure.ownInstance.on(...,...);