問題タブ [process-pool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - メインの非同期プロセスから複数の非同期プロセスを開始する方法
わかりました、おそらくこれを必要以上に複雑にしていますが、クラスがあります:
私は別のクラスを持っています:
WorkerManager
asyncio で実行したいのですが、リスト内の単語ごとWorkerManager
に個別のプロセスを開始し、 fromを使用してリスト内の各項目を処理したいと考えています。それ、どうやったら出来るの??ProcessPoolExecutor
Worker
worker_pool
python - メインの非同期ループ内の同期サブプロセス内で複数の非同期ループを実行する方法は?
実行するメイン関数がありasyncio
、その中でevent_loop.run_in_executor()
ブロック関数の複数のプロセスを実行していました。
私がやりたいことは、これらの各プロセス内で、非同期コードを実行するために、それぞれに対して新しい asyncio ループを実行することです。
したがって、複数のプロセスを作成するメインの非同期関数があり、それぞれに新しい asyncio ループを作成したいと考えています。これはどのように行うことができますか?
python - concurrent.futures.ProcessPoolExecutor() がファイルで機能しない
私は顔認識プロジェクトに取り組んでおり、https: //face-recognition.readthedocs.io/en/latest/ lib を使用しています。このライブラリを使用して 1 枚の写真を認識するいくつかの関数を作成しました。次に、この関数をすべての写真に並列化したいと考えました。そのために、私は concurrent.futures.ProcessPoolExecutor() を使用しています
self.unknown_list が写真の名前のリストである場合、プログラムは完全に機能しました。しかし、[open("imgname.format", "rb")] のリストのようにファイル オブジェクト (プロジェクトにとってより便利) を与えようとすると、並列化では何もしません。self.recognize 関数を起動しません。lib がファイルで正しく動作することを確認しました。また、同じコードも並列化せずに完全に機能します。しかし、私がそれをやろうとすると、プログラムはエラーなしで動かなくなります。前もって感謝します
python - ProcessPoolExecutor で BrokenProcessPool エラーが頻繁に発生する
データ抽出ジョブの場合、データがストアから抽出される ProcessPoolExecutor を使用します。抽出がメモリ内のレコード数のしきい値に達すると、抽出されたデータセットは ProcessPoolExecutor を介して別のプロセスに渡され、メイン プロセス/イテレーターはレコードのフェッチを続けます。ProcessPoolExecutor によって生成されたプロセスは、受信したデータセット内のレコードを変換、フィルター処理します。
特に大規模なデータセットを操作する場合、次の BrokenProcessPool を頻繁に取得し続けます。それをヒント(より大きなデータセット)として、関連するパラメーターを調整すると、このエラーは少し遅れますが、最終的にエラーがスローされます。情報が不足しているため、それは非決定論的なパズルのままであり、いつ/どのポイントで再び発生するかを特定できません。
私は他の質問を調べましたが、それを情報として使用して進歩することはできません.
具体的には、queue.Full エラーが発生する queues.py のコード スニペットを次に示します。
このエラーがどのような状況で発生するかは不明ですが、
- セマフォの数が不足しているためですか?
- キューがいっぱいになるのは、高速なプロデューサーと低速なコンシューマーのシナリオによるものですか? その場合、キューに書き込むプロセスをブロックすることはできますか?
- キューの空き容量を知る方法はありますか? 要素をキューに正常に配置する前に、ライターを調整できるようにするには?
決定論的にデバッグする方法についての考えや指針はありますか?
python - Python プロセス プール エグゼキューターと名前付きタプルが原因で単体テスト エラーが発生する -> 「'_io.TextIOWrapper' オブジェクトをピクルできません」
プロセス プール エグゼキューターと一緒に namedtuple を使用しようとしていますが、単体テストを作成するときに、以下のエラーが発生し続けます。コード内の dut は、2 つの関数が格納されている python ファイルを表し、単体テストから呼び出しています。
以下は私が持っているコードです
これにより、以下に示すようにエラーが発生します Traceback (most recent call last): TypeError: cannot pickle '_io.TextIOWrapper' object
これで単体テストを実行すると、表示されるエラーが発生します
以下はスタック トレースです。