0

Rubyでマルチプロセスアプリケーションを開発する必要があります。1つのマスタープロセスが複数のワーカープロセスを管理します。マスターはワーカーのプルを作成し(フォーク!マルチスレッドは必要ありませんが、マルチプロセッシング)、データベースに定期的に処理される新しいレコードを要求し、存在する場合は、パイプを介してワーカーにレコードを送信します。ワーカーが仕事を終えたら、マスターに通知する必要があります。これにより、マスターはこのワーカーに別のレコードを送信して処理できます。ワーカーがマスターに送信できる通知の解決策が見つかりません。非同期で実行する必要があるようですが、IOパイプは同期モードで動作します。行き方を教えてください。コメントでのフォークのベストプラクティスも歓迎します!ありがとうございました。

PS。EventMachineやParallelのような外部ソリューションは使用せず、フォークのみを使用します。

4

1 に答える 1

2

まあ、私は本当にMQシステムがより適していると思います。マスターはジョブを公開し、クエリを実行してジョブを処理します。

レールにはパブリッシュ/サブスクリプション機能もあります。を参照してください。

http://api.rubyonrails.org/classes/ActiveSupport/Notifications.html

Rails pub / sub with faye

于 2013-01-06T07:07:51.980 に答える