2011-02-02 11 views
2

私は、親から子へではなく、別々に生成される多くのプロセスを持っています。プロセスはの特定のプロセスにメッセージを送信する必要があります。受信プロセスアドレス(pid)はデータベースに格納できますが、プロセスはメモリ内の共通変数を共有できません。無関係なプロセスによるPythonマルチプロセス

pythonsマルチプロセスパッケージでこれを達成する方法が見つかりませんでしたが、現在ソケットベースのサーバーを検討していますが、この種のアーキテクチャがマルチプロセッシングで実現できるかどうかは不思議です。ピッキング可能なオブジェクトを簡単に渡します。

答えて

2

プロセスは特定のプロセスにメッセージを送信する必要があります。受信プロセスアドレス(pid)はデータベースに格納できますが、プロセスはメモリ内の共通変数を共有できません。

データベースを削除しますか?どうして?ファイルは安価で利用可能で、1つの整数値しか格納していないので、誰もがファイルを使用します。

また、あなたはファイルを使うつもりなので、もっと興味深い選択肢があります。

  1. すべてのプロセスは、名前付きパイプにメッセージを書き込みます。受信プロセスは、名前付きパイプから要求を受け取ります。

  2. すべてのプロセスがメッセージをファイルに書き込みます。シンプルなロックは、一度に1つのプロセスだけがファイルにアクセスできるようにして、シリアル化を保証します。受信プロセスは、このファイルから読み取ります。

  3. すべてのプロセスは、HTTPを使用して受信プロセスに対してRESTfulな要求を行います。受信プロセスでは、削除されたHTTPサーバーフレームワークを使用して要求を処理します。

  4. すべてのプロセスはメッセージキューを使用してメッセージをエンキューします。受信プロセスはメッセージをデキューします。キューはファイルです。

などです。はい、あります。しかし、彼らはOSに特化し始めます。

関連する問題