Rails アプリからのプロセスを「バックグラウンド」にするために fork{} を使用するのが良いアイデアかどうかについて、いくつか考えてみたいと思います...
私が集めたものから fork{my_method; Process#setsid} は、実際に本来の機能を果たします。
1) 異なる PID を持つ別のプロセスを作成します
2) 呼び出しプロセスを中断しません (たとえば、フォークの終了を待たずに続行します)。
3) 終了するまで子を実行します
..これはクールですが、それは良い考えですか? フォークは正確に何をしているのですか?Rails mongrel/passenger インスタンス全体の複製インスタンスがメモリ内に作成されますか? もしそうなら、それは非常に悪いでしょう。それとも、大量のメモリを消費することなく、どうにかしてそれを行うのでしょうか。
私の最終的な目標は、バックグラウンドのデーモン/キュー システムを廃止して、これらのプロセス (主に電子メールの送信) をフォークすることでした。しかし、これでメモリが節約されない場合は、間違いなく間違った方向への一歩です。