「worker.rb」というスクリプトがあります。このスクリプトを実行すると、しばらく (たとえば 1 時間) 処理が実行されてから終了します。
上記のワーカー スクリプトの生成を担当する別のスクリプトが必要です。このスクリプトを「runner.rb」と呼びましょう。「runner.rb」は、スポーンできるワーカーの数を指定する引数で呼び出されます。
runner.rb に次のことを実行してもらいたい: (例: 'ruby runner.rb 5') - データベースに特定の値を照会する (例: 100 個の値を取得する) - 'worker.rb' の 5 つのインスタンスを生成する (最初の 5 つの値を渡す)それぞれの値) - 上記で生成された「worker.rb」のインスタンスのいずれかをチェックして終了し、データベースから 6 番目の値を使用して「worker.rb」を再度呼び出し、このプロセスを無期限に続行します。
私はデーモンの宝石を使用していますが、これを行う最善の方法として迷っています。「ランナー」スクリプトは必ずデーモン化する必要がありますが、ワーカーもデーモン化する必要がありますか?
「ランナー」は「ワーカー」が終了したかどうかをどのように確認する必要がありますか? これは、ファイルに保存されている PID を使用して実行できますか?