2011-08-04 13 views
3

並行して実行する必要がある2つのプロセスをコード化する最良の方法を考えようとしています。マルチプロセッシングが優先モジュールであるかどうかは確かではありません。Pythonマルチプロセッシングに関する質問

私はdataCollectorで長時間多くのデータを生成していますが、dataCollectorの実行中はdataCheckerを使用してデータを定期的にチェックしたいと思います。私の考えでは、2つの重要な時間があります.1つは、dataCollectorがファイルをダンプする時間です。もう1つは、dataCheckerがダンプされたファイルの解析を開始するのと同じ時間です.2つは、 dataCheckerが終了し、dataCollectorの待機を再び開始します。

誰かがマルチプロセッシングモジュールの概要を提案できますか?別のモジュールを使用すべきですか?ありがとう

答えて

2

なぜモジュールを使用するのですか?これは、同時に開始する2つの別々のプロセスを持つことによって簡単に実行できます。 dataCheckerは、ディレクトリ内のすべてのファイルを一覧表示し、それらをカウントし、短時間(数秒以上)スリープします。その後、ファイルの数が変更された場合は、新しいファイルを開き、読み込んで処理します。

2つのプロセスの同期は、メールボックスを介して完全に行われ、ファイルが格納されたディレクトリとして実装されます。 dataCollectorが新しいメッセージの書き込みを開始したときにのみ、メッセージが受信されます。

+0

あまりにも複雑に聞こえます。なぜdataCollectorをdataCheckerにパイプして、チェックするデータがあるときにstdoutに書き込むのはなぜですか? – Clueless

+1

私はそれがより簡単だと思います。プロセスをお互いに認識させてコードの複雑さを増やす理由は何ですか?この回答は絶対に正しいです。それは、コレクタの状態ではなく、チェッカが気にするデータの可用性です。コレクタは、チェッカについてまったく気にしません。 – agf