2016-04-26 69 views
-1

我有一个间隔函数,我希望从服务启动时开始每x分钟运行一次。如果我把它放在我的应用程序js文件中,它只会在完成对我的服务器的请求后才会调用(我猜它运行在应用程序js上并调用函数)是否正确地执行此操作?如果对我的服务器的另一个请求完成,它会再次调用我的函数吗?节点js在启动时调用一次函数

+1

你能否提供一些代码的例子吗? – mfrachet

+1

我不确定你想要达到什么效果,但我建议不要这样做。相反,尝试一些工作调度。您将可以更好地控制任务。 –

+0

我们需要查看您的代码,以了解您在说什么和/或如何最好地完成它。始终包含相关的代码。 – jfriend00

回答

1

如果你做这样的事情:

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

然后setInterval函数将分别有对服务器的请求,所以如果有10个请求,那么将有大约运行10个区间函数时被调用。

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

举个例子如果你有一个Web服务器一样表达它看起来就像这样:

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); 
});