如何获得强回圈集群中的工作者/进程ID列表?

看起来Strongloop集群中的每个进程都被视为一个工作者,因此如果使用节点调度程序等工具来调度作业,并且有多个工作人员,则会多次执行作业。

理想情况下,我可以做一些事情:

var cluster = require('cluster'); if (cluster.isMaster) { // execute code } 

由于这似乎不可能,我想知道是否有办法从节点应用程序内部获取所有工作进程或进程ID的列表,以便我可以对一个工作人员执行同样的操作? 这将需要dynamic的,因为工作人员ID是不可预知的,因为cluster.worker.id似乎不是一个可靠的方法来做到这一点。

想法?

  1. “strongloop集群”不是一件事情,它是一个节点集群: https ://nodejs.org/dist/latest-v6.x/docs/api/cluster.html

  2. 没有这样的API存在,它不会帮助你,你需要实现某种共识algorithm来select一个(dynamic的,工人可以死亡并被取代/重新启动)一组工人作为“单身人士”

  3. 如果你需要一个单独的任务运行器,把它作为一个服务,并运行一个簇大小为1的系统,就把你的系统组装成微服务。

  4. 这不是一个真正的集群问题,它是一个无法扩展的问题,不是吗? 集群做内部扩展,你可以限制到一个调度服务….但是当你将跨越多个虚拟机(多个Heroku dyno的,多个docker集装箱等),这将仍然分崩离析…这将是定时节点计划作业的来源?