首页 > 解决方案 > 为什么我的节点脚本在一段时间后停止运行?

问题描述

我有一个相当简单的脚本,我想在循环中运行,该脚本应该使用 setInterval() 每 2 分钟运行 3 个不同的函数。它看起来像这样......

app.listen(port, () => {
  setInterval(() => {
    function1()
    function2()
    function3()
  }, 1000 * 120)
})

每个函数调用不同的 API,重新构造返回数据的布局,然后将所有数据发送到 mongodb 数据库。使用“npm run server.js”运行每个函数的成功率约为95-99%,当一个函数失败时,它对下次运行该函数没有影响,所以我不介意的功能时不时地失败。我的问题是,我现在使用 pm2 在 ec2 服务器上托管了这个节点应用程序,因此它不断运行,但大约 30 分钟后,其中一个函数将停止将结果添加到数据库,然后稍后另一个函数将停止然后最后他们都会停下来。

那我做错了吗?我应该以不同的方式托管节点应用程序,还是不应该使用这个 setInterval() 设置?

标签: node.jsexpressamazon-ec2setintervalpm2

解决方案


推荐阅读