2016-05-18 14 views
1

私はRDBを持っています(SQLiteと言いましょう)。私はRDBに接続し、いくつかの結果を集約するモジュールを作成しました(私のデータに関する基本的な統計を得るために)。このモジュールを「アグリゲータ」と呼ぶことにしましょう。今私はいくつかの計算(このモジュールクライアントと呼ぶ)を求めて答えを待って、集計モジュールに要求を送るローカルクライアントを書いて、それが返されたときにそれを表示する(または何か他のものに使う) 。Pythonプログラムを簡単にやりとりする方法

私の状況では、私のモジュール(クライアントとアグリゲータ)はどちらもローカルです(そして私はLinuxで作業しています)。

私は両方のシステムをやりとりするための簡単な方法を知りたいと思います。

私は「DBus」について聞いたことがありますが、それが私の状況に適しているのかどうかは不思議です(過度でない場合)。

+2

0mq、rabbitmqまたはredis – Janom

+3

のような任意のブローカーを使用して、2つが 'ソケット 'を介して通信することができます。 –

+0

RDBに関数を使用して集計をさせるのは良い考えです。次に、接続できるクライアントは集約をフェッチできます。 SQLiteを使用している場合は、この種の集約を実行するモジュールを作成し、マルチプロセッシングとPOSIx通信を開始するのではなく、クライアントがこのモジュールに依存することがあります。 – jlandercy

答えて

2

私はソケットを使用します。 Pythonには、標準のsocketライブラリがあり、pickle-dumpedオブジェクト、dumped json、またはプログラム間の文字列を渡すことができます。

+0

Ok、それは良い考えです、私はそれが "ローカル"通信に適していたかどうか疑問に思っていました。私は遠いサーバーのプログラムに使うと思っていましたが、実際には開発者の中にはローカルで使うことに同意しているようです。 – MarAja

+1

ソケットは、プログラム間で簡単にやり取りする方法です。はい、それらはウェブ上での通信に広く使用されていますが、ローカル通信にも適しています。 –

関連する問題