setInterval阻止/干扰node.js/快递HTTP服务器吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (59)
  • 我有一个在Ubuntu上运行的快速http服务器
  • 它做了一些app.get/post calls并与之交谈mongoDB

现在我需要定期运行独立的JavaScript,这将与同一个mongoDB进行交流。

所以,app.js我打算这样做:

app.get()
app.post()
...
app.listen(3443);

setInterval(function () {
  runStandAloneScript();  
}, 86400); 

function runStandAloneScript() {
    // makes http calls to local server and mongodb locally
}

我的问题会阻止/ app.get/post以任何方式干扰通话?

提问于
用户回答回答于

它会阻止你的服务器,如果runStandAloneScript是同步的,并且长时间运行。setInterval(function () { runStandAloneScript(); }, 86400); function runStandAloneScript() { sleepSync(5); // 5 seconds sleep, blocking } 以前的脚本会每隔86400秒将服务器阻塞5秒,以防止处理任何请求。如果你在runStandAloneScript服务器上执行一些非阻塞I / O,它将正常工作。function runStandAloneScript() { return fs.readFile('./tmp/some-file.txt'); }

扫码关注云+社区

领取腾讯云代金券