Ruby Tips!

RubyのTipsを紹介します

分散オブジェクトシステムdrbを利用する

分散オブジェクトシステムdrbを利用すれば、別プロセスのRubyのオブジェクトを、あたかも同じプロセスにあるかのように扱うことができる。

以下は自身のSTDOUTを公開するサーバと、サーバのSTDOUTを取得して、サーバにメッセージを出力させるクライアントの例である。

まずサーバを実行し、続いてクライアントを実行すると、サーバ側にメッセージが表示される。

サーバ側

require 'drb'

DRb.start_service("druby://localhost:8787", STDOUT)
DRb.thread.join

クライアント側

require 'drb'

DRb.start_service
remote_stdout = DRbObject.new_with_uri("druby://localhost:8787")
remote_stdout.puts "Hello, DRb!"