1

私は、潜在的に相互に依存する処理タスクを同時に処理できるスレッド(またはプロセス)プールを提供するPythonモジュールを実装中です。たとえば、受注管理システムの場合は、受注を行い、別の受注を行い、2番目の受注をキャンセルし、3番目の受注を行い、1次受注を取り消すことができます - すべての受注プレースメントは同時に処理できますが、キャンセルはそれぞれの注文と同時に行うことはできず、注文のプレースメントが完了した後に行う必要があります。私はこのような問題に対する良い汎用ソリューションを考え出し、オープンソースの最初の貢献として使ってみたかったのです。依存関係のあるタスクのPythonマルチスレッド/処理モジュール

これに多大な時間を費やす前に、私はこのようなものが既に存在するかどうかを知りたがっていました。誰でもこれを行う既存のPythonパッケージを知っていますか?これは誰にも役立つでしょうか?

+1

興味のある方は、GitHubでプロジェクトを開始しました.- https://github.com/mikecoop83/pysequen – Mike

答えて

1

はい、をご覧ください。スレッドとプロセスを再利用するマルチスレッド、マルチプロセッシング、および分散コンピューティングのスケジューラがそれぞれTaskPoolPoolであります。任意のタスクの依存関係(直接非周期グラフ - DAG)を構築することができます。ただし、取り消しのサポートについてはわかりませんが、タスクで手動で実装することはできます。

+0

daskに関する情報をありがとうございます。私が簡単に読んだところでは、DAG全体を実行する(依存関係を持つ)タスクの単一のセットとして提出するように見えます。これは、プロデューサがすべての依存関係を認識しているシナリオを処理します。私が実装しようとしているものでは、プロデューサーは知らないが、タスクは別のタスクと同時に実行できるかどうかを「尋ねる」ことができる「インターフェース」を実装している。このようにして、プロデューサは依存関係を知る必要はなく、スケジューラは正しい順序で実行されるように処理します。それは理にかなっていますか? – Mike

関連する問題