Rubyでは、通信スレッド、レンダスレッド、多分キャッシングスレッドの2つ(または多分3つ)のプログラムの「ファセット」を連続して実行する必要があります。スレッドまたはDRb?
レンダリングスレッドはスライドショー(その定義はファイルから読み込まれます)を表示し、すべてのスライドは通信スレッドによってリモートHTTPサーバーから取得されます。レンダリングは連続していなくてはいけません(したがって、キャッシングの可能性が高い)。ファイルはプログラムの存続期間中に変更される可能性があるため、(その場で)再解析する必要があります。
私はcommsスレッドがショー全体を取得したときのように "ファセット"間でメッセージを送信したいと思います。例えば、ショー全体がダウンロードされるのを待つ前にレンダリングスレッドを開始することができます。に。
RubyスレッドまたはDRbを使用する必要がありますか?どのようにスレッド間でメッセージを渡すことができますか?
フィードバックありがとうございます。
私だけのための機能を渡すメッセージのDRBの検討している - 私は...右のスレッドでそれを持つことができませんか?私はmutexでハックすることができますが、それはまだハックです...そうですか? :) DRbはとても簡単です。 –
複数のプロセスが必要な場合は、実際にはメッセージパッシングシステムしか必要ありません。それはあなたが複数のプロセスが必要なので私はそれを簡単に保つことをお勧めしたいと思います。私はあなた自身に似たようなことをしています(リモートデータを集めて処理し、出力をレンダリングします)。単純なスレッドシステムがうまくいくでしょう。私は各ステージとスレッドを1スレッドずつ持っています。しかし、あなたが必要と考えるものを使用してください! 幸い! –
IMHO、RabbitMQの提案は正しい方法です。以前はDRbとRabbitMQの両方でこの種のことをやっていましたが、DRbのソリューションは理想的ではありませんでした。 RabbitMQは数十倍も高速で、celldeeのBunnyライブラリを使用している場合は、はるかに簡単です。 –