在 Rails 中启动一项延迟作业会创建两个进程

Starting one delayed job in Rails creates two processes

最初我没有延迟作业的进程(如 htop 所示),然后当我 运行 命令 RAILS_ENV=production bin/delayed_job start 时,我得到了一个延迟作业工人,如 [=17 中的文件所示=].但是 htop 现在表明有两个进程,如下图所示。

那么为什么会这样呢?另一个延迟的作业消耗了我没有太多内存的内存!但是它的 TIME+ 为零,所以它没有消耗时间,那么这是什么意思?

我猜这些实际上不是两个进程,而是单个进程的两个线程。您可以通过在 htop 中输入大写的 H 键来隐藏线程。如果那时你只看到一行,你就会证明这是一个单一的进程。

延迟作业可能有一些管理工作线程的主线程(或者只是您设置中的单个工作线程),监视队列并在需要时运行工作线程。线程 share most of the memory 所以我不认为资源消耗问题来自 htop.

中的两行