【问题标题】:Node.js pm2 delay script launchNode.js pm2 延迟脚本启动
【发布时间】:2020-03-30 22:02:39
【问题描述】:

我使用了很棒的 pm2 包来保持我的 node.js 应用程序的运行,但是我有一个问题我不知道如何解决。

我的一个应用程序需要几个脚本、一个服务器和几个客户端。通常,当我重新启动服务器时,所有脚本都会重新启动,但由于客户端已在服务器之前加载,因此未建立连接。 是否可以确保脚本在另一个脚本加载后启动?让我试着改写一下,这样会更清楚

我有:

pm2 start server.js
pm2 start client.js

而且我想以某种方式仅在服务器启动时启动客户端。

抱歉,我的问题似乎不清楚,请发表评论,我会解释更多!

【问题讨论】:

  • 你在哪里有m2 start server.js pm2 start client.js?在 bash 脚本中?
  • 不,我试图解释我需要什么。我使用如下所述的 processes.json:github.com/Unitech/pm2#a13

标签: javascript node.js pm2


【解决方案1】:

使用此脚本运行 Pm2

pm2 start node <start script> --restart-delay <time in milliseconds>

【讨论】:

    【解决方案2】:

    重写您的客户端以进行多次连接尝试。这样做总是一件好事,而且在这种情况下也会有所帮助。

    【讨论】:

    【解决方案3】:

    查看pm2restart strategies

    您可以选择restart-delay

    您还可以使用 restart_delay 设置重启之间的固定时间

    或者最好你可以使用exp-backoff-restart-delay

    当发生异常(例如数据库关闭)时,不会像疯了一样重新启动您的应用程序,而是指数退避重新启动将逐渐增加重新启动之间的时间,从而减少您的数据库或外部提供商的压力。

    你可以在命令行中使用它

    pm2 start app.js --exp-backoff-restart-delay=100

    或在文件中或通过生态系统.config.js 文件中的 json 格式:

    module.exports = [{
      script: 'app.js',
      exp_backoff_restart_delay: 100
    }]
    

    【讨论】:

      猜你喜欢
      • 2021-03-28
      • 2022-07-18
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多