1

DRb で単純な分散システムを作成しています。

すべてのピアと、ブートストラップを行うサーバーが 1 つあります。そのサーバーには、「suggest_peer」、「start_service」、「stop_service」などのメソッドがいくつかあります。

ピアがサーバーに接続すると、3 つのメソッドすべてを呼び出すことができます。私は彼が最初のものだけを呼び出すことができるようにしたい.

また、サーバーを初期化するファイルがあり、サービスの開始、デバッグ、ログなどすべてを実行できるように、小さな cmd 行があります。そのコマンドラインで、最初のメソッドだけでなく、2 番目と 3 番目のメソッドも呼び出せるようにしたいと考えています。

どうやってやるの?ピアがサービスを停止するのを防ぐにはどうすればよいですか?
サービス メソッドをプライベートにすると、コマンド ラインから呼び出すことができなくなります。

4

1 に答える 1

0

これは私が得たものです。

Thread.current['DRb']['client'].peeraddr

これは、4 つの項目を含む小さな配列を返します。1 つ目はプロトコル、2 つ目はポート、3 つ目はホスト (名前)、4 つ目はアドレス (名前がない場合はホストと同じ) です。

http://www.ruby-forum.com/topic/1962357の Brian Candler に感謝します。

于 2011-06-22T21:48:26.090 に答える