2

我有点卡在从工头设置中设置独角兽工人的数量之间

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb

然后在运行时foreman start -c web=16

或独角兽只需设置worker_processes 16

如果我在设置foreman start -c web=8时设置这是否worker_process=2意味着它将总共运行 16

这只是一个偏好还是有什么我不明白的?有人可以解释一下吗。

4

1 回答 1

3

foreman start -c web=16 将启动 16 个主 unicorn 进程,每个分叉但是默认设置许多工作进程。

foreman start -c web=1 将 worker_processes 设置为 16 将启动一个主 unicorn 进程,该进程将分叉 16 个工作进程。

主要区别在于您让谁来控制流程。unicorn master 进程是围绕跟踪它的分叉进程并知道它们何时被挂起等以进行清理和重新启动的想法而构建的。工头进程只知道主 unicorn 进程,而不知道主 unicorn 进程派生的任何进程。

独角兽机架服务器专门用于替换运行多个进程(例如 4 个瘦服务器),而是运行单个主进程并让它处理分叉工作进程的管理。这允许单个进程知道服务于机架应用程序的所有其他进程。

简而言之 - 运行一个独角兽进程并在配置文件中添加工人数。不要让工头做。

于 2013-03-16T22:08:44.380 回答