0

私は現在、「マスター」プロセスの制御下で実行される多くのプロセスを必要とするプロジェクトに取り組んでいます。このプロセスは、TCP 経由でリモート コマンドを受信し、子プロセスに何をすべきかを伝えます (例: どのファイルに対処するか、どの処理操作を実行するか)。彼らは実行する必要があります)。

コマンド/構成を子プロセスに渡すために、次のアイデアを思いつきました。

  • 信号(十分に強力ではありません)
  • 各プロセスをマスターに接続するソケットまたはパイプを介したバイナリ プロトコル (車輪の再発明)。
  • RPC (やり過ぎかもしれません)
  • CORBA (おそらくやり過ぎ)
  • DDS (完全にオーバーキル)

アイデア/提案はありますか?

4

5 に答える 5

1

D バス

于 2010-12-02T18:42:23.990 に答える
0

パイプを介したテキストプロトコルはどうですか?

テキストプロトコルは、テストが簡単で、一般的にバグが少ないことを意味するため、バイナリプロトコルよりも常に優れています。

于 2010-12-02T23:02:27.740 に答える
0

Supervisordツールが役立つ場合があります。これは、ユーザーが UNIX ライクなオペレーティング システムで多数のプロセスを監視および制御できるようにするクライアント/サーバー システムです。

于 2012-02-10T13:53:00.357 に答える
0

メッセージ キュー、またはセマフォを備えた共有メモリを使用することもできます。

メッセージをサブスクリプション キューなどにディスパッチできる ActiveMQ と呼ばれる Apache プロジェクトを調べることもできます。これは非常に強力で柔軟で、C インターフェイスがあります。メッセージをディスパッチする必要がある多数のマシン/ネットワークがある場合に理想的です。

http://activemq.apache.org/

于 2010-12-03T00:18:05.633 に答える
0

beanstalkd や resque のような軽量のメッセージ キューは、適切なレベルの複雑さのようです。inotify を含むファイルも機能します。inotify はイベント キューとして設計されています。焼き込む前に incrontab で試すことができます。{xml,json}-rpc は (少し) 複雑ですが、http を使用するため、より標準的です。ただし、メッセージ キューのメタファは、ノンブロッキングの対話には rpc よりも適しています。

于 2010-12-03T01:29:18.847 に答える