我是 nodeJs(和 JS)的新手,所以你能解释一下(或给一个链接)如何编写永久运行的 nodeJs 的简单服务吗?
我想编写服务,它每秒向外部 API 发送一个请求,将结果存储在数据库中。
那么,也许 nodeJs 有一些简单的模块可以一遍又一遍地运行 js 方法?
或者,我只需要编写 while
循环并在那里执行?
最佳答案
setInterval()
是您用来在 node.js 中每秒运行一些东西的方法。这将在您传递 NN 的值时每 NN 毫秒调用一次回调。
var interval = setInterval(function() {
// execute your request here
}, 1000);
如果你想让它永远运行,你还需要处理你正在联系的远程服务器离线或有问题并且没有像往常一样响应的情况(例如,它可能需要超过第二个是超时或失败的麻烦请求)。重复使用 setTimeout()
在处理完成后 1 秒安排下一个请求可能更安全。
function runRequest() {
issueRequest(..., function(err, data) {
// process request results here
// schedule next request
setTimeout(runRequest, 1000);
})
}
// start the repeated requests
runRequest();
在此代码块中,issueRequest()
只是您正在执行的任何网络操作的占位符(我个人可能会使用 request()
模块并使用 request.get()
.
因为您的请求处理是异步的,所以这实际上不是递归,也不会导致堆栈堆积。
仅供引用,具有事件传入服务器或事件计时器或进程内网络操作的 node.js 进程不会退出(它将继续运行),只要您始终有一个计时器在运行或网络请求在运行,您的 node.js 进程将继续运行。
关于javascript - 如何编写nodejs服务,一直运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34979124/