我不认为 resque 存储了process id
fork 进程的,它
log
虽然做到了,但我不存储进程 idchild process forked
你可以在第 139 行看到这里
关于您如何提取正在运行的 resque 作业的进程 ID 的问题,我认为使用 redis 数据结构在您的作业本身内部执行此操作的方法
running_process
所以考虑下面的代码是你使用 redis hash( )创建作业的执行操作,并process_id
在其中添加当前时间戳
class MyJob
@queue = :myjob
def self.perform
field = Time.now.to_i
redis.hsetnx "running_process",field,Process.pid
### Rest of the code
#### when the code is about to finish
##remove the finish process from the
redis.hdel "running_process",field
end
现在您可以通过简单地查询 redis "running_process" 哈希来获取所有正在运行的进程的列表,如下所示
redis.hgetall "running_process"
此处的注意事项如果resque
作业失败,那么进程 ID 将永远不会被清除
哈希你所做的只是确保你交叉检查process id
你收集的
从redis哈希实际上是一个running resque job
希望这有帮助