2017-10-03 5 views
1

私は現在、Pyro4を使って、他のデーモンがホストしているオブジェクトやスクリプトから呼び出せるだけのオブジェクトであるサービスをホストするデーモンを作成しています。オブジェクトは初期化にかなりの時間がかかるので、呼び出す必要があるたびにそれらを作成するスクリプトを単に再実行するのではなく、これらのオブジェクトを生かしておく必要があります。非ネットワークプロセス間通信のためのPyro4

実装はきれいに簡単です。クライアントコードは自分の要件に十分に迅速に実行され、機能を拡張するのは簡単です。しかし、Pyro4は、ネットワーク上で動作するPythonプログラムに対して明示的に作られており、私はこれらのデーモンをサーバ内で内部的に実行しています。 Pyro4が行うクリーンな方法でデーモン間の対話と通信の両方を処理するPythonパッケージはないようです。

私の質問:Pyro4は私のニーズに合っているのですか?あるいは、このユースケースを扱うための標準的な方法がありますか?

+1

ただのコメントPyro4の実装がそんなに好きで嬉しいです。 –

答えて

1

多くのプロセス間通信プロトコルは、単一のマシンで実行している場合でも「ネットワーク」を使用しています。ローカルループバックアダプタ(IPV4アドレス127.0.0.0/8およびIPV6 :: 1)の「ネットワーク」接続は、通常は物理的なネットワークインターフェイスをまったく経由しないため、特に高速にする必要があります。

また、Pyro4もUnix domain sockets以上の通信をサポートしていますか?これらは純粋にローカルシステムリソースです。

「Pyro4はネットワーク経由で実行されるPythonプログラムのために明示的に作られた」という言い回しはすべて真実ではありません。私は間違いなく、Pyro4を単一のコンピュータ上でもプロセス間で使用することを意図していました。この目的には適していないと思うPyro4について特に何かがある場合は、それを指摘してください。

関連する問題