Skip to content

Instantly share code, notes, and snippets.

@katoy
Created December 13, 2014 01:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save katoy/51cca72dd75f49d6bb77 to your computer and use it in GitHub Desktop.
Save katoy/51cca72dd75f49d6bb77 to your computer and use it in GitHub Desktop.
druby のサンプル (remote のファイル内容を得る)
# coding: utf-8
# See http://docs.ruby-lang.org/ja/2.0.0/library/drb.html
require 'pp'
require 'drb/drb'
# 接続先の URI
SERVER_URI="druby://localhost:8787"
# DRbサーバを起動する
# この例には必要ないが、front オブジェクト以外の
# リモートオブジェクトのメソッドを呼び出す時には必要
DRb.start_service
# リモートオブジェクトの取得
rpc = DRbObject.new_with_uri(SERVER_URI)
# リモートメソッドの呼び出し
pp rpc.command('cat server.rb')
pp rpc.read('server.rb')
# coding: utf-8
# See http://docs.ruby-lang.org/ja/2.0.0/library/drb.html
require 'drb/drb'
require "open3"
# 通信を待ち受ける URI
URI="druby://localhost:8787"
class RunCommandServer
def read(file_path)
File.new(file_path).read
end
def command(command)
Open3.capture3(command)
end
end
# サーバ側でリクエストを受け付けるオブジェクト
FRONT_OBJECT = RunCommandServer.new
# サーバを起動する
# DRb.start_service(URI, FRONT_OBJECT, :safe_level => 1)
DRb.start_service(URI, FRONT_OBJECT, :safe_level => 0)
# DRb のスレッドが終了するのを待つ
DRb.thread.join
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment