このようなパイプラインを介して多数のファイルを変換する実験を実行しようとしています。 AとBはファイルを入力として使用し、stdoutを介してファイルまたはいくつかのテキストを生成します。 Cはこれらの入力を受け取り、データベースに保存します。 (A、B、CはサーバーではなくローカルCLIプログラムです。)
File ---------> A ----->
| C ---> Database
+---> B ----->
私の考えでは:
- 何千ものファイルをキューに追加し、このパイプラインを介して並列に処理します。
- Web UI(または人間に優しいCLI)を使用すると、次のことができます。
- 進捗状況の監視、つまり処理/失敗したジョブの数(ジョブ=入力ファイルあたりの上のパイプラインのインスタンス)
- 失敗した操作(入力、エラーログなど)の確認
- 失敗したジョブを手動でキューに追加する(自動再試行は不要)
- (オプション)一時停止/再開/キューを空にする(進行中のタスクを一時停止する必要はありません)
(各ジョブ内のAとBは並列に実行する必要はなく、ジョブスケジューラはパイプラインの構造を知る必要はありません。ファイル名を形式で使用する単純な順次bashスクリプトでパイプライン全体を作成できます。入力ファイルに対してスクリプトをソートするだけです)
このユースケースに適した無料のオープンソースCLIプログラムまたはライブラリ(可能な限りPython)はありますか?
Airflowを見てみると、単一のDAGを介して複数のファイルを処理するのではなく、まったく同じ静的タスク(DAG)を繰り返し実行するようです。私もDramatiqを試しましたが、許可されていないようです。失敗したタスクを簡単にやり直すことができます(たぶんこれはRabbitMQの限界かもしれません)。
私はこれらのツールについてよく知らず、愚かな質問をして申し訳ありません。