前言
在前端开发中,pm2 是一个非常常用的进程管理工具,可以用来启动、停止、重载应用程序等等,方便快捷。但是,在一些场景下,我们需要知道 pm2 重启了哪些进程,以便更好的监控和管理项目。
为了解决这个问题,我们可以使用一个 npm 包 pm2-restart-notifier,来实现 pm2 进程重启的通知。
安装
在使用 pm2-restart-notifier 之前,需要先安装 pm2,这里不详细介绍 pm2 安装方法。然后使用 npm 安装 pm2-restart-notifier:
npm install pm2-restart-notifier
使用
安装完成后,在项目的入口文件中引入 pm2-restart-notifier,为了方便,在 app.js 中引入:
const pm2RestartNotifier = require('pm2-restart-notifier');
pm2-restart-notifier 提供了一个函数,可以接收两个参数,一个是监听函数,一个是可选参数,其中监听函数用来处理 pm2 重启事件的通知,可选参数用来控制通知行为。
pm2RestartNotifier(function (event, restartCount, appName) { console.log('Event %s received, restarted %d times, app %s', event, restartCount, appName); }, { ignoreFirstStart: true });
在这个监听函数中,我们可以处理 pm2 重启事件的通知,event 参数代表事件名称,restartCount 代表进程重启的次数,appName 代表进程的应用名称。
可选参数中,ignoreFirstStart 参数设置为 true,表示在应用程序第一次启动时忽略通知,默认为 false。
示例代码
我们可以通过以下示例代码模拟 pm2 重启事件来测试 pm2-restart-notifier 的效果。
app.js:
-- -------------------- ---- ------- ----- --- - --------------- ----- ------------------ - -------------------------------- -------------------- ----- - -- ----- - ------------------- ---------------- - ----------- ------- ----------- ----- ---------- -- -------- ----- - -- ----- - ------------------- ------ ----------------- - ---------------- ------- ---------------- --------------------------- ------- ------------- -------- - ------------------ -- --------- --------- -- ------ --- ---- ------ ------------- --------- -- - ----------------- ---- --- ------------------- -- - -------------------- -------- ----- - -- ----- - ------------------- ------ ----------------- - ---------------- ------- ---------------- ----------------- --- -- ------ --- ---
index.js:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------ - -------------------------- ----- ---- - ------------------ - --------------- ------------ --- -------------- ---------- --- -------------------- ------------------- ------- -- -------------------------
执行命令:
node app.js
可以看到 pm2-restart-notifier 的输出信息:
App started successfully! Event restart received, restarted 1 times, app test-app App stopped successfully!
总结
通过 pm2-restart-notifier,我们可以方便的得知 pm2 重启了哪些进程,以及重启次数等相关信息。这对于项目的监控和管理有着很大的作用。
同时,需要注意的是,在实际使用中,需要慎重考虑通知的行为,避免过度发送通知造成干扰。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056d1d81e8991b448e6e8d