Node.js 如何构建一个节点js程序/服务,它在后台保持活动状态,并每隔几秒钟执行一次轮询操作?
我正在寻找一种方法来构建一个node.js服务,该服务在后台运行并轮询Redis流(它可以是任何真正的东西)。虽然我了解如何在node.js中构建web服务器,但我还没有找到这种“每隔几秒钟就保持活动状态并轮询某个内容(比如调用REST端点或轮询msg队列)的后台服务”。如果你能用几行代码来显示它,那就太棒了开始一个间隔,每x秒填充一次Node.js 如何构建一个节点js程序/服务,它在后台保持活动状态,并每隔几秒钟执行一次轮询操作?,node.js,Node.js,我正在寻找一种方法来构建一个node.js服务,该服务在后台运行并轮询Redis流(它可以是任何真正的东西)。虽然我了解如何在node.js中构建web服务器,但我还没有找到这种“每隔几秒钟就保持活动状态并轮询某个内容(比如调用REST端点或轮询msg队列)的后台服务”。如果你能用几行代码来显示它,那就太棒了开始一个间隔,每x秒填充一次 startInterval() { const x = 1; setInterval(() => { // Do your
startInterval() {
const x = 1;
setInterval(() => {
// Do your Stuff every x seconds here
}, 1000 * x)
},
您可以通过以下方式实现这一点。
它是一个用于部署和监视Node.js应用程序的生产流程管理器
结合@BraveButter answer,您应该能够做您想做的事情。您可能想得太多了,因为节点服务器进程在默认情况下保持活动状态,并作为事件主动响应请求。这与某些服务器运行时体系结构(如PHP)不同,默认情况下,每个请求都有一个进程,因此启动 每个新请求的脚本“从头开始” 因此,如果您被PHP或类似的东西弄糊涂了,您必须跳过额外的障碍来创建一个持久化进程,那么请记住,对于一个简单的节点服务器脚本,您不应该这样做。您只需使用您可以使用的设置一个间隔,该间隔将每隔一段时间运行一个函数 文档中的基本Cron用法:
var CronJob = require('cron').CronJob;
new CronJob('* * * * * *', function() {
console.log('You will see this message every second');
}, null, true, 'America/Los_Angeles');
只需在异步函数中启动一个间隔,调用startInterval后进程是否仍处于活动状态?它会退出吗?我不会在浏览器中这样做。谢谢各位。我仍然不明白,如果我不编写一些显式的旋转代码,一个程序怎么可能是活的。但我试过了,很明显,布拉夫巴特的答案是有效的。最后,在做了更多的研究之后,我决定使用一个npm模块异步轮询,它似乎比我自己的setInterval提供了更多的特性