在 iisnode 中检测 "master" 个进程

Detect "master" process in iisnode

我运行在一台 32 核机器上使用 iisnode 开发了一个 node.js 应用程序。 IIS 创建了 32 个进程以有效使用所有 CPU 核心,并为每个进程使用命名管道。

我需要启动一个小型任务调度程序和 运行 一些其他代码,但仅在其中一个进程中,我不希望 32 个进程同时 运行 相同的代码时间。因为这不是 node.js 集群,所以我不能使用 cluster.isMaster 并且我不知道 iisnode 会像 PM2 那样为每个进程提供一个 ID(阅读 here) .

是否有一种简单的方法来 运行 一些代码,但只在所有创建的进程之一中?我知道我可以使用数据库锁,但我希望在必须这样做之前找到一种更简单的方法。

我最终使用了 proper-lockfile 包,在我的情况下效果很好!