問題タブ [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.
ruby - プロキシ サーバーを介して Ruby でリモート処理を実装する方法は?
クライアントとサーバーの両方が JRuby で記述されるクライアント サーバー (非 Web ベース) プロジェクトに Ruby を使用することを検討しています。クライアント (Windows) は、プロキシ サーバーを備えた企業のファイアウォールの背後に配置され、サーバーはクラウド内に配置されます。DRbによって ruby から ruby へのリモーティングが非常に簡単になることはわかっていますが、DRb がプロキシ サーバー上で機能するかどうかは不明です。これを行う方法はありますか?
または、JRuby を使用しているため、Java RMI over HTTPを使用することを考えました。
ruby - Sinatraパラメータを渡すDRb::DRbServerNotFound
SinatraアプリケーションとDRbサーバーオブジェクトがペアになっています。params
Sinatraハッシュをサーバーオブジェクトのメソッドに渡そうとすると、取得しますDRb::DRbConnError …
DRb::DRbServerNotFound
が、単純なハッシュを直接渡すと同じメソッドが機能します。
- Sinatra paramsハッシュでこのエラーが発生するのはなぜですか?
- この問題を解決するための最も簡単で正しい回避策は何ですか?
簡単なテストケースは次のとおりです。
これらの両方が独自のプロセスで実行されている場合:
これはOSX上のRuby1.9.2で実行されていますが、違いがあるとは思いません。
ruby - DRb メソッド アクセス
DRb で単純な分散システムを作成しています。
すべてのピアと、ブートストラップを行うサーバーが 1 つあります。そのサーバーには、「suggest_peer」、「start_service」、「stop_service」などのメソッドがいくつかあります。
ピアがサーバーに接続すると、3 つのメソッドすべてを呼び出すことができます。私は彼が最初のものだけを呼び出すことができるようにしたい.
また、サーバーを初期化するファイルがあり、サービスの開始、デバッグ、ログなどすべてを実行できるように、小さな cmd 行があります。そのコマンドラインで、最初のメソッドだけでなく、2 番目と 3 番目のメソッドも呼び出せるようにしたいと考えています。
どうやってやるの?ピアがサービスを停止するのを防ぐにはどうすればよいですか?
サービス メソッドをプライベートにすると、コマンド ラインから呼び出すことができなくなります。
ruby - DRb、「誰が私を呼んだか」メソッド
DRbserverで、誰がメソッドを呼び出したかをどのように確認できますか?特定のメソッドを呼び出す人からのIPとポートをログに記録したい。何かのようなもの
def who
uri = <DRb method here>
puts uri
end
この機能はDRbで利用できますか?
ありがとう。
ruby - DRb または EventMachine を使用した QtRuby
ネットワークを介して他のインスタンスと通信する Qt を使用して、Ruby でアプリケーションを作成したいと考えています。
Qt のイベント ループを DRb または EventMachine と統合するにはどうすればよいですか?
編集:
もっと時間があれば答えを見つけたので投稿します
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
:
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 のバージョンです。
ruby - 分散 Ruby プログラムでの DRb と TCPSocket の主な違いは何ですか?
Ruby プログラムがクライアントで、別の Ruby プログラムがサーバーであるマルチプロセス クライアント サーバー タイプのシステムを作成したい場合、これを DRb と TCPSocket で実装するかどうかを決定する際の重要な要素は何ですか? どちらも、2 つのプロセス間の双方向通信を許可しているようです。
あるアプローチが他のアプローチよりも優れている分野はありますか? たとえば、複数のクライアントが同時にサーバー プロセスにアクセスできるようにする必要がある場合です。
ruby - ルビーDRbのみで最もシンプルなチャットシステムを作成する
私はDRbを学び、それを使ってチャットシステムを作りました。コードは次のとおりです。
ターミナル1:
ターミナル2:
私はそれが非常に単純で、たった2つの端末であり、すべてのメッセージが「from」プレフィックスですべての端末に表示されることを知っています。しかし、醜いのは、同じクラスをコピーして、端末ごとに異なるスレッドを開くことです。これは、他のマシンのコンソールに文字列を出力する方法がわからないためです。したがって、コードを次のように記述できる場合:
そうすれば、クラスAを維持し、1つのスレッドを使用できます。すべてのメッセージについて、A.my_addを呼び出すだけで、すべての端末に出力されます。私はあなたの助けに感謝します。ありがとう!
ruby - RubyDRbObjectとオーバーライド送信
今日はおかしな状況でした(簡略化):
タイプAdapter
がa#send
と#receive
メソッドを持つ通信オブジェクトがあります。私のアプリケーションはDRbによってそれと通信します。だから私のアプリケーションでは、私は、DRbObject
と言うことができますfoo
。
さて、
の代わりに#send
onを呼び出します。DRbObject
Adapter
もちろん、最も簡単な修正は、sendメソッドの名前を変更することです。ただし、ドキュメント/基盤となるAPIにできるだけ近づけたいと思います。
どう思いますか?メソッドの名前を変更する必要send
がありますか、それともこのためのきちんとした(ローカル)ハックがありますか?