0

私のセットアップは次のとおりです。1 つのマスター プログラム(Python で記述) がデータを取得するメイン アプリケーションとして機能し、データは SQLite DB に保存されます (その後さらに処理されます)。このデータは、スレーブと呼ばれる同じマシン上で実行されている他のプログラム内で収集されます。

一度に実行されるスレーブは常に 1 つだけであるため、マスターは複数のスレーブから同時にデータを取得する必要がないことに注意してください。ただし、1 つのスレーブがシャットダウンすると、別のスレーブがマスターへのデータ送信を開始できます。

このセットアップの重要な機能は、スレーブを任意のプログラミング言語で記述できることです。私はスレーブをあまり制御できません。ただし、これらのスレーブ プログラムに「プラグイン」して、機能を拡張し、そのアプリケーションからマスターにデータを送信することができます。

マスターに送信されるデータは、キーと値のペアのリストなどの「正式な」形式でなければなりません。その要件は一種の柔軟性があり、現在実行中のスレーブにも依存します。

ここで私の質問: 同じマシン上で実行中のプログラムのインスタンス間で通信を行うにはどうすればよいですか? 私はWeb サービスについて考えましたが、すべてが同じホストで実行されているため、少し過剰に思えます。もう 1 つの方法として、sockets を介した Json ベースのデータの通信が考えられますが、私はまだそのようなアプローチの経験があまりないため、この場合のニーズに合うかどうかはわかりません。

これらの 2 つのアプローチは、私の最初のアイデアにすぎません。

私は確かにそのような要件を持つ最初のものではないので、そのようなセットアップを実装する方法の一種の「ベストプラクティス」アプローチがあると思います。

アイデアはありますか、それとももっと良いのですが、それに関する実際の経験はありますか?
ありがとう。

4

1 に答える 1

1

プロセス間で通信するクロスプラットフォームの方法はありませんが、これに tcp ソケットを使用しない理由はありません。

例:mongodは MongoDB のデーモン プロセスであり、他のプロセスは通常の tcp ソケットを介して通信します (これを参照)。

于 2013-04-20T14:40:52.660 に答える