节点js在启动时调用一次函数

时间:2016-04-26 05:39:14

标签: javascript node.js

我有间隔功能,我希望从我的服务启动时起每隔x分钟运行一次。如果我把它放在我的app js文件上,它只在我的服务器请求完成后调用(我猜它在app js上运行并调用该函数)这是正确的方法吗?如果我的服务器的另一个请求完成,它会再次调用我的函数吗?

1 个答案:

答案 0 :(得分:1)

如果您这样做:

requestHandlerFunction(req,res){
    setIntervalFunctionSetup();
}

然后每次向服务器发出请求时都会调用setInterval函数,因此如果有10个请求,则会有10个间隔函数在运行。

有多种解决方案,但最简单的方法是在service.listen()函数调用之后调用setInterval函数。

举个例子如果你有像express这样的网络服务器,它将如下所示:

var express = require('express');
var app = express();

app.get('/', function (req, res) {
    res.send('Hello World!');
});

app.listen(3000, function () {
    setInterval(function setIntervalCallback(){
        //do something every 10 sec
    }, 10000);
});