問題タブ [rpyc]

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 に答える
1638 参照

python - rpyc.Connection を介して停止したサーバー プロセスを検出する

Service があるとします。

ここで、ThreadedServer で実行されている Service を開始します。

同じマシンの別のプロセスで、サーバーへの新しい接続を開きます。

...しかし、接続のルートにアクセスする前に、サーバープロセスの制御端末で Ctrl-Z などの理由でサーバープロセスが停止します。今、次の方法でルートにアクセスしようとすると:

... Python がハングします。クライアント側で Ctrl-C を実行すると、次のようになります。

そのため、サーバー プロセスが停止していても接続されている (基になるソケットがまだ開いている) 場合、Stream.pollへの呼び出しは無限ループで終了するようです。これは Stream の実装では予期しないケースであると考えるのは正しいですか? バージョン 3.3.0 を使用しています。このケースを検出し、クライアントのハングを回避するにはどうすればよいですか?

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

multithreading - Rpyc Python: Rpyc サービス スレッド開始呼び出しがブロックされています

サーバーは正常に起動し、値を更新できますが、hello world 文字列が出力されません。プログラムが t.start() でスタックしています。どうすればブロックしないようにできますか。

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

python - rpyc.Service に似ているがローカルのみの Python サービス

とても素朴な質問です...

他の Python アプリケーション (すべてが同じマシン上で実行されている) にサービスを提供する中心的な Python プログラムが必要です。私にとって最も簡単なのは、他のアプリケーションがサーバーによって提供される関数を直接呼び出すことができることです。私はrpyc(Remote Python Call)を知っており、クラスは(このチュートリアルrpyc.Serviceのように)仕事をすることができましたが、「リモート」は何も望んでいません(すべてのクライアントはローカルで、サーバーと同じマシンで実行されている必要があります)。 rpyc を使用するよりもこれを行うためのより良い方法があるかどうか疑問に思っていましたか?

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

python - python RPyC ユーザー数

RPyC を使用して、ハードウェア ボードの API をサービスとして提供したいと考えています。ボードは、一度に 1 人のユーザーしか対応できません。一度に 1 人のユーザーのみがアクセスできるように RPyC を強制する方法はありますか?

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

python - rpyc を使用してリモート オブジェクトのプロパティを更新する

アプリケーション内で rpyc を使用していますが、小さな問題が発生しました。

リモート プロパティを更新できるかどうか知りたいのですが。

テストサーバーがあります:

そしてipythonコンソール内:

リモート プロパティを更新することはできますか?

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

python - Rpyc: 1 つのクライアントから多数のサーバーへ

同じクライアントを多数のサーバーに接続するにはどうすればよいですか?

私はもう試した:

しかし、async_result0/1.wait() を実行すると、実際に実行されるのは後者だけです。

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

python - Python インタープリターでグローバル名ルックアップをフックする

リモートモジュールへの参照を保持するプロキシがあり、これらのプロキシのいくつかをsys.modulesローカルモジュールと同じように使用できるようにします。しかし、他のいくつかのオブジェクトは__builtin__、リモート環境でモジュールに入れられます (デバッグや参照に便利なマジック変数など)。のようにこれらの var を参照したくありませんconn.__builtin__.var。ローカル__builtin__を置き換える必要があります (replace では機能しないsys.modules['__builtin__']か、グローバルな名前検索ルールをフックする必要があります。どうすればよいでしょうか?モジュールの場合は、getattrこれを行うために a をオーバーロードするだけです。しかし、のようなインタラクティブなインタープリターIPythonで、メインモジュールは誰ですか、またはこれを行う方法は? 更新: @Nizam Mohamed が指摘したように、はい、取得できます__main__モジュールですが、それでも名前検索の役割を変更できません。

ローカル環境を完全にリモート環境にしたい (デバッグ コンソール用)

アップデート

今のところ__builtin__.__dict__、ローカルにない名前がある場合は、すべてを繰り返すだけ__builtin__です。ローカルの に名前を追加し__builtin__ます。しかし、ローカルで名前が見つからない場合は__builtin__、リモートの名前を試してみてください。

ここに同様の議論があります。

そして、この質問は、モジュールを のオブジェクトに置き換えることで、モジュールのシミュレーションを提供しますsys.modules。しかし、これは名前ルックアップでは機能しません。また、最初に元のルックアップを使用し、失敗したときにカスタム ルックアップを使用するカスタム ルックアップ__builtin__に置き換えようとしました。ただし、イベントに呼び出されないグローバル__builtin__.__getattribute__名のルックアップは、目的の値を返すか、値を返しません。__builtin____builtin__.__getattribute____builtin__.__getattribute__('name')__builtin__.namename