2016-04-26 67 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); 
});