Node.js 自动 GET 请求

分享于2023年04月22日 automation cron http javascript node.js 问答
【问题标题】:Node.js automatic GET requestsNode.js 自动 GET 请求
【发布时间】:2023-04-21 13:06:02
【问题描述】:

我需要在我的节点应用程序中每 10 分钟执行一次 GET 请求并添加到 mongoDB。

我对 node 比较陌生,目前必须访问 /myurl 来启动进程(GET 并添加到 DB),它按预期工作。

让节点应用不断发出这个 GET 请求(每 10 分钟左右)的最佳方法是什么?

我的研究使我得到了以下结果:

  • JavaScript:var t=setInterval(runFunction,1000);
  • Cron 作业。我不确定是否可以让 cron 作业执行节点功能。也许这需要在节点之外完成。

任何建议将不胜感激。


【解决方案1】:

由于您使用的是节点,所以我会使用 setInterval:

var t = setInterval(runFunction, 10 * 60 * 1000);

【讨论】:

  • 这可能是一个愚蠢的问题,但为什么我需要将 i 设置为变量 't'?
  • 这可能是一个愚蠢的问题,但为什么我需要将它设置为变量't'?出于某种原因,我无法让它以这种方式工作。它只记录一次。这有效: setInterval(logTime, 10 * 60 * 1000); function logTime() { console.log('hi'); }
  • 分配给't'应该没有效果——你的测试代码应该也能正常工作。但是,如果您有调用 clearInterval(t) 的附加代码,那么这将取消定期调用。
  • 奇怪。是的,分配给't'给了我:'监听端口 3000 timers.js:252 callback.apply(this, args); ^ TypeError: 无法在 Timer.listOnTimeout [as ontimeout] (timers.js:110:15) 的包装器 [as _onTimeout] (timers.js:252:14) 处调用未定义的方法 'apply'
  • 您可能已经将 't' 用于其他目的。尝试将名称更改为“intervalID”。