关于nodejs 服务中断自动重启

  现象:在node服务中,使用了request包,用以解决前端跨域请求酷狗音乐,在连接的过程中,会时不时出现node宕调情况,于是乎查找解决方案。

看到博客园https://www.cnblogs.com/lliule/p/7943365.html,给出的方案正合我意,很好的解决了我的问题,特此记录。

下面是测试demo。

1

2

3

4

5

6

7

8

9

10

11

// start.js

test();

function test() {

    console.log("服务进行中。。。");

 

    setTimeout(function () {

        console('模拟各种异步业务逻辑。。。');

        //业务正常执行完成,系统退出。

        process.exit(0);

    },1000);

}

  

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

//auto.js

//自动重启

 

let process = require('child_process');

let fs = require('fs-extra');

let ChildProcess  = process.fork('./start.js');

 

ChildProcess.on('exit',function (code) {

    console.log('process exits + '+code);

    fs.appendFileSync('./log.txt','线程退出');

    if(code !== 0){

        process.fork('./auto.js');

    }

 

});

  

最后,配置一下windows的命令文件:

1

2

3

4

5

6

//autoStart.bat

 

 

@echo off

node auto.js

@pause

  

点击autoStart.bat文件,或者直接打开cmd,运行 node auto.js后,系统正常退出,不会重启。

 

修改start.js  代码,

1

2

3

4

5

6

7

8

9

10

11

12

// start.js

test();

function test() {

    console.log("服务进行中。。。");

 

    setTimeout(function () {

        console('模拟各种异步业务逻辑。。。');

        let c= a.b;// 这里a undefined.所以会报错

        //业务正常执行完成,系统退出。

        process.exit(0);

    },1000);

}

  此时。系统会一直重启重启。。。

你可能感兴趣的:(前端学习笔记)