【发布时间】:2018-02-02 08:11:51
【问题描述】:
在我的项目中,我有几台使用 PM2 运行 NodeJS 应用程序的服务器,这些服务器不是我创建的。我对PM2不太熟悉。现在我需要启动一个新服务器,它只是一个查询 ElasticSearch 实例的 CRON 进程。 里面没有路由或任何东西,只是一个带有一些日志记录的 CRON。 这是我的困境。我玩过 PM2,对它是什么以及它的作用有了一些了解。但问题是我该如何运行它?
之前的项目确实有带有许多参数的 PM2 config.json,它们以集群模式启动(使用 Nginx 处理),当我启动它们时,我看到所有进程都变成了守护进程。但就我而言,我不需要那个。我只需要它作为单一服务运行。
换句话说,如果我使用配置文件运行 PM2,我会看到它以集群模式生成,并且由于我的 CRON 被多次触发,它会造成混乱。我不需要那个。如果我在 Fork 模式下启动它,它也会生成实例,但它们都死了,除了一个(由于它们使用相同的端口)。我也不需要那个。 我只需要单一服务。
我设法用单行运行了我的 CRON app.js,简单如下: PM2 启动 app.js。它在单线程中运行,我可以看到它的 PM2 状态信息。一切都好。
如果我用单行运行它(如我的情况),它被认为可以吗?据我所知,如果我使用 config.json,它将始终在 fork 或集群中运行它。 是否可以单行运行,还是我还需要使用 config.json 文件。
【问题讨论】:
-
查询完成后是否应该停止进程?
-
没有。它无限期地运行。