6

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

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

我有 :

pm2 start server.js
pm2 start client.js

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

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

4

3 回答 3

11

使用此脚本运行 Pm2

pm2 start node <start script> --restart-delay <time in milliseconds>
于 2017-09-27T06:03:23.030 回答
6

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

于 2014-02-01T18:20:48.213 回答
1

检查 pm2重启策略

您可以选择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
}]
于 2020-03-30T14:02:39.027 回答