Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何构建一个节点js程序/服务,它在后台保持活动状态,并每隔几秒钟执行一次轮询操作?_Node.js - Fatal编程技术网

Node.js 如何构建一个节点js程序/服务,它在后台保持活动状态,并每隔几秒钟执行一次轮询操作?

Node.js 如何构建一个节点js程序/服务,它在后台保持活动状态,并每隔几秒钟执行一次轮询操作?,node.js,Node.js,我正在寻找一种方法来构建一个node.js服务,该服务在后台运行并轮询Redis流(它可以是任何真正的东西)。虽然我了解如何在node.js中构建web服务器,但我还没有找到这种“每隔几秒钟就保持活动状态并轮询某个内容(比如调用REST端点或轮询msg队列)的后台服务”。如果你能用几行代码来显示它,那就太棒了开始一个间隔,每x秒填充一次 startInterval() { const x = 1; setInterval(() => { // Do your

我正在寻找一种方法来构建一个node.js服务,该服务在后台运行并轮询Redis流(它可以是任何真正的东西)。虽然我了解如何在node.js中构建web服务器,但我还没有找到这种“每隔几秒钟就保持活动状态并轮询某个内容(比如调用REST端点或轮询msg队列)的后台服务”。如果你能用几行代码来显示它,那就太棒了

开始一个间隔,每x秒填充一次

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提供了更多的特性