2017-07-10 44 views
0

ユーザーが注文を送信します。注文を受け取ると、いくつかのタスクを実行するパイプラインを実行します。いくつかのタスクにはコンピュータ時間がかかります。Luigiは同じパイプラインの並列実行を処理できますか?

# Example pipeline 
order -> task1 -> task2 -> task3 -> Complete 

Iそれが入ってくるよう各注文の処理を開始したいので、私たちの計算クラスタが複数の注文を処理され、パイプラインのそれに関連する実行が同時に

# Diagram showing each order arriving then being processed over time. 

| order1 -> t1 -> t2 -> t3 -> complete 
|    order2 -> t1 -> t2 -> t3 -> complete 
|      order3 -> t1 -> t2 -> t3 -> complete 
|      order4 -> t1 -> t2 -> t3 -> complete 
|            order5 -> t1 -> t 
------------------------------------------------------------------ 
time 

あなたはルイージでこれを行うことができますか?

テストパイプラインを実装した後、テストパイプラインの別のインスタンスを起動しようとすると、最初の実行中に2番目のパイプラインインスタンスから次の出力が得られるとは思いません。

答えて

2

パラメータが異なる限り、タスクは異なるIDを持ち、同時に実行できます。同じパラメータでタスクを実行しようとすると、ID生成関数が同じIDを生成するため、すでに実行中であると見なされます。生成されたIDが異なる場合、同じタスクを複数実行することは間違いありません。ここで

はタスクIDの生成方法です:あなたの応答のための https://github.com/spotify/luigi/blob/master/luigi/task.py#L118

+0

おかげで、 私はコードと加工した例で新しい同様の質問をしてきました。別のタスクIDでパイプラインを実行する2回目の試みがうまくいかない理由がありますか? https://stackoverflow.com/questions/45034961/how-to-run-parallel-instances-of-a-luigi-pipeline-pid-set-already-running – UEFI

関連する問題