問題タブ [drb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
273 参照

ruby - プロキシ サーバーを介して Ruby でリモート処理を実装する方法は?

クライアントとサーバーの両方が JRuby で記述されるクライアント サーバー (非 Web ベース) プロジェクトに Ruby を使用することを検討しています。クライアント (Windows) は、プロキシ サーバーを備えた企業のファイアウォールの背後に配置され、サーバーはクラウド内に配置されます。DRbによって ruby​​ から ruby​​ へのリモーティングが非常に簡単になることはわかっていますが、DRb がプロキシ サーバー上で機能するかどうかは不明です。これを行う方法はありますか?

または、JRuby を使用しているため、Java RMI over HTTPを使用することを考えました。

0 投票する
1 に答える
568 参照

ruby - Sinatraパラメータを渡すDRb::DRbServerNotFound

SinatraアプリケーションとDRbサーバーオブジェクトがペアになっています。paramsSinatraハッシュをサーバーオブジェクトのメソッドに渡そうとすると、取得しますDRb::DRbConnError … DRb::DRbServerNotFoundが、単純なハッシュを直接渡すと同じメソッドが機能します。

  1. Sinatra paramsハッシュでこのエラーが発生するのはなぜですか?
  2. この問題を解決するための最も簡単で正しい回避策は何ですか?

簡単なテストケースは次のとおりです。

これらの両方が独自のプロセスで実行されている場合:

これはOSX上のRuby1.9.2で実行されていますが、違いがあるとは思いません。

0 投票する
1 に答える
243 参照

ruby - DRb メソッド アクセス

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

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

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

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

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

0 投票する
1 に答える
224 参照

ruby - DRb、「誰が私を呼んだか」メソッド

DRbserverで、誰がメソッドを呼び出したかをどのように確認できますか?特定のメソッドを呼び出す人からのIPとポートをログに記録したい。何かのようなもの

def who
uri = <DRb method here>
puts uri
end

この機能はDRbで利用できますか?

ありがとう。

0 投票する
1 に答える
227 参照

ruby - DRb または EventMachine を使用した QtRuby

ネットワークを介して他のインスタンスと通信する Qt を使用して、Ruby でアプリケーションを作成したいと考えています。

Qt のイベント ループを DRb または EventMachine と統合するにはどうすればよいですか?

編集:

もっと時間があれば答えを見つけたので投稿します

0 投票する
2 に答える
1552 参照

ruby-on-rails - sporkをRuby1.9.2/ 3 + Rails 3.1 + Rspecで動作させるには?

そこにはかなりの数の確かなチュートリアルがあり、私はこれを過去に機能させるのにそれほど問題はありませんでした。しかし、何時間も試した後、私は何かが欠けているに違いありません。

標準のインストール手順を完了し、sporkサーバーを起動しました。

よさそうだ。

次に、新しいタブに移動して、仕様を実行します。

このコマンドは、ほんの一瞬だけ実行した後は何も返しません。そこで、sporkサーバーに戻って、何が起こったのかを確認し、次の情報を取得します。

何らかの理由で、drb接続に失敗していますか?私は狂ったようにグーグルで検索しましたが、そこには何も役に立たないようです。

いくつかの可能な手がかり

  • 56736スイートを実行しようとするたびに、ポート(この場合)が変更されます
  • ルビー1.9.2とルビー1.9.3の両方で同じ結果が得られます
  • Mac(ユキヒョウ)を使用していて、ファイアウォールが無効になっています
  • まったく別のマック(ユキヒョウも)で試してみましたが、同じ結果になりました。
  • 私は最新バージョンのキュウリ、rspec、およびスポークを使用しています。
  • キュウリのスポークもセットアップしましたが、同じように失敗しました。

ご覧のとおり、私はしばらくの間それを叩き続けてきました。私のプロジェクトはたくさんの宝石を使っていますが、スポークがないのでテストは本当にひどいものになります。助けてください...

アップデート

これが私のspec_helper

0 投票する
1 に答える
535 参照

ruby-on-rails-3 - RSpec with jruby- NoMethodError: undefined method `read_all' for nil:NilClass when using --drb with spork

--drb を .rspec ファイルに追加した後、spork の実行で次のエラーが発生します。Macでjruby-1.6.7を使用しています

以下は、私が使用している rspec gems のバージョンです。

0 投票する
0 に答える
162 参照

ruby - 分散 Ruby プログラムでの DRb と TCPSocket の主な違いは何ですか?

Ruby プログラムがクライアントで、別の Ruby プログラムがサーバーであるマルチプロセス クライアント サーバー タイプのシステムを作成したい場合、これを DRb と TCPSocket で実装するかどうかを決定する際の重要な要素は何ですか? どちらも、2 つのプロセス間の双方向通信を許可しているようです。

あるアプローチが他のアプローチよりも優れている分野はありますか? たとえば、複数のクライアントが同時にサーバー プロセスにアクセスできるようにする必要がある場合です。

0 投票する
1 に答える
418 参照

ruby - ルビーDRbのみで最もシンプルなチャットシステムを作成する

私はDRbを学び、それを使ってチャットシステムを作りました。コードは次のとおりです。

ターミナル1:

ターミナル2:

私はそれが非常に単純で、たった2つの端末であり、すべてのメッセージが「from」プレフィックスですべての端末に表示されることを知っています。しかし、醜いのは、同じクラスをコピーして、端末ごとに異なるスレッドを開くことです。これは、他のマシンのコンソールに文字列を出力する方法がわからないためです。したがって、コードを次のように記述できる場合:

そうすれば、クラスAを維持し、1つのスレッドを使用できます。すべてのメッセージについて、A.my_addを呼び出すだけで、すべての端末に出力されます。私はあなたの助けに感謝します。ありがとう!

0 投票する
1 に答える
268 参照

ruby - RubyDRbObjectとオーバーライド送信

今日はおかしな状況でした(簡略化):

タイプAdapterがa#send#receiveメソッドを持つ通信オブジェクトがあります。私のアプリケーションはDRbによってそれと通信します。だから私のアプリケーションでは、私は、DRbObjectと言うことができますfoo

さて、

の代わりに#sendonを呼び出します。DRbObjectAdapter

もちろん、最も簡単な修正は、sendメソッドの名前を変更することです。ただし、ドキュメント/基盤となるAPIにできるだけ近づけたいと思います。

どう思いますか?メソッドの名前を変更する必要sendがありますか、それともこのためのきちんとした(ローカル)ハックがありますか?