如何防止节点程序停止运行?

时间:2011-12-14 08:56:24

标签: javascript node.js

我看到许多使用节点的应用程序永远运行。

因此,我尝试使用setInterval方法,我认为它会让它永远运行,但显然它没有。

var request = require('request');

var queue = function(item) {
  request({
    uri: 'http://www.google.net'
  },
  function(error, response, body) {
    if (!error && response.statusCode == 200) {
      console.log(body) // Print the google web page.
    }
  })
};
setInterval(queue("google"),1000); //do this every 1 second.

当我在程序上运行时,它会在一秒钟后停止。

如果我用节点运行它,我怎么能修改上面的代码以保持运行?

3 个答案:

答案 0 :(得分:2)

实际上你的代码中有一个错误:

setInterval(queue("google"),1000); //do this every 1 second.

不是将上面的函数作为第一个参数传递,而是传递执行函数的结果。

如果您想要多个参数,请执行setInterval(queue, 1000)或执行以下操作:

setInterval(function() {
  queue(how_many_params_you_want);
}, 1000);

答案 1 :(得分:2)

更好的解决方案是使用npm:forever

答案 2 :(得分:1)

您必须将setInterval分配给局部变量。

setInterval(function(){},1000);

将停止。

var timer = setInterval(function(){},1000);

不会。