http-alive
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

http-alive

NPM Version Node Version

keep your web service always online

it makes your service self-balanced, previously we restart our app by kill process -> start app or pm2 restart, but some requests may be handling/blocked when restarting, if we stop our app, those requests will be interrupted. http-alive helps to fork two process, one of arbiter, one of slave, when you stop the master, the arbiter will thansfer those blocked requests to the slave, in this way, your web service is always ready

Installation

npm i http-alive -S

Usage

before

your original web service

import * as http from 'http';
 
http
  .createServer((req, res) => {
    res.end(`${process.pid}-${process.env.PORT}`);
  })
  .listen(3000);

after

add one line import 'http-alive', use process.env.PORT to define the service's port

import * as http from 'http';
 
import 'http-alive';
 
const port = process.env.PORT;
 
http
  .createServer((req, res) => {
    res.end(`${process.pid}-${process.env.PORT}`);
  })
  .listen(port);

add a config file .httpalive in your project directory

{ "arbiter": 3000, "master": 3001, "slave": 3002 }

please pay attention to the ports, the arbiter's port equals to your original port

then start your service like usual

Others

clean process

to completely remove process forked by http-alive, npm i httpalive -g, then run command httpalive clean

or

add "clean": "node ./node_modules/http-alive/bin/httpalive.js clean" to package.json's scripts, then npm run clean

Todo

  • xxxx

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i http-alive

Weekly Downloads

2

Version

1.0.4

License

MIT

Unpacked Size

19.3 kB

Total Files

16

Last publish

Collaborators

  • cooperhsiung