在 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
.
中的两行
最初我没有延迟作业的进程(如 htop 所示),然后当我 运行 命令 RAILS_ENV=production bin/delayed_job start
时,我得到了一个延迟作业工人,如 [=17 中的文件所示=].但是 htop 现在表明有两个进程,如下图所示。
那么为什么会这样呢?另一个延迟的作业消耗了我没有太多内存的内存!但是它的 TIME+ 为零,所以它没有消耗时间,那么这是什么意思?
我猜这些实际上不是两个进程,而是单个进程的两个线程。您可以通过在 htop
中输入大写的 H
键来隐藏线程。如果那时你只看到一行,你就会证明这是一个单一的进程。
延迟作业可能有一些管理工作线程的主线程(或者只是您设置中的单个工作线程),监视队列并在需要时运行工作线程。线程 share most of the memory 所以我不认为资源消耗问题来自 htop
.