为什么 Rails 控制台会创建这么多 Ruby 进程?

Why does Rails console create so many Ruby processes?

我用 Cron 试验了 Rake 任务。我一开始没有 Ruby 个进程,然后 Cron 作业启动并生成了一个进程。下面突出显示的过程是 Cron 的 运行,这是预期的:

我想检查是否有任何记录被写入数据库。我 运行 rails c 进入 Rails 控制台,发现我的进程列表中突然出现另外四个 ruby 进程,如上。为什么会这样?我认为 运行 控制台应该创建另一个进程而不是四个。

退出控制台后,我剩下三个 Ruby 进程,包括 运行ning 的 Rake 任务。

我正在使用 Rails 4.2.

并不是我觉得这有问题,但我很好奇为什么一个 REPL 需要多个进程,然后在 REPL 关闭后需要两个剩余进程。

这是因为 spring 现在已经默认 rails 了一段时间了。

您可能会注意到第二次 运行 rails c 比第一次快很多。这是因为你第一次 运行 一个 springified 脚本时,你的应用程序会正常加载,然后分叉到 运行 你请求的内容。第二次围绕此加载程序脚本可以再次分叉,因此您可以获得更快的启动速度。这可能是因为您注意到了这些额外的过程。

你可以通过运行ning

看到它们
spring status

你可以通过运行宁

杀死他们
spring stop