交叉问题。
我能想到的事情(我确定还有更多):
- 为了获得高可用性:
- 您需要多台计算机(如果一台计算机出现故障) - 因此您必须在每台计算机上使用工作程序。
- 即使对于一台机器 - 我认为让2个工作在两个不同的进程而不是一个具有高并发性的工作者更安全(如果我错了,请纠正我,但我认为它是用线程实现的)。
- 在docs中,我看到他们建议使用每个CPU的并发。
- 如果您想将不同的任务分开给不同的工作人员..
当然,你有这样的代价:需要更多资源(CPU /内存等)的更多进程。
我发现这个question非常相似。
我假设您正在同一台计算机上同时运行两个工作程序。在这种情况下,我建议您维护一个工作人员排队。
- 两个工作人员处于同一队列不会使您受益。这样只会增加内存浪费。
- 当您有多个队列时,两个或更多工作线程,以保持优先级或为每个工作线程分配不同数量的核心。
如果您在不同的计算机上运行工作程序,则- 对于单个队列,两个或更多工作程序很有用。不同计算机上的工作人员使用同一队列中的任务,您可以根据每台计算机上可用的核心分配并发性。
我知道2年后我做出了回应。但是我只是想把它放在这里,供那些仍然有类似疑问的人使用。