我想了解一下使用 fork{} 从 rails 应用程序“后台”处理进程是否是个好主意......
从我收集的 fork{my_method; Process#setsid} 实际上做了它应该做的事情。
1) 创建另一个具有不同 PID 的进程
2) 不会中断调用过程(例如,它会继续等待 fork 完成)
3) 执行子进程直到它完成
..这很酷,但这是个好主意吗?叉子到底在做什么?它是否会在内存中创建我的整个 rails mongrel/passenger 实例的重复实例?如果是这样那将是非常糟糕的。或者,它是否以某种方式在不消耗大量内存的情况下做到这一点。
我的最终目标是取消我的后台守护程序/队列系统,转而支持分叉这些进程(主要是发送电子邮件)——但如果这不能节省内存,那么这绝对是朝着错误方向迈出的一步