14

現在、単純な依存関係 chain( ) を使用して、一連の luigi タスクを一緒にキューに入れていa -> b -> c -> dます。d最初に実行さaれ、最後に実行されます。aトリガーされるタスクです。

を除くすべてのターゲットはオブジェクトをa返し、文字列 (日付と時刻を含む) であるluigi.LocalTarget()単一のジェネリックを持ちます。luigi.Parameter()luigi 中央サーバー (履歴が有効になっている) で実行されます。

問題は、上記のタスクを再実行するとa、ルイージが履歴をチェックし、その特定のタスクが以前に実行されたかどうかを確認し、ステータスが DONE であった場合、タスクを実行しないことです (dこの場合)。文字列を変更しても役に立ちません (ランダムなマイクロ秒が追加されました)。タスクを強制実行するにはどうすればよいですか?

4

6 に答える 6

0

d6tflowを使用すると、タスクをリセットして強制的に再実行できます。詳細については、 https: //d6tflow.readthedocs.io/en/latest/control.html#manually-forcing-task-reset-and-rerunを参照して ください。

# force execution including downstream tasks
d6tflow.run([TaskTrain()],force=[TaskGetData()])

# reset single task
TaskGetData().invalidate()

# reset all downstream task output
d6tflow.invalidate_downstream(TaskGetData(), TaskTrain())

# reset all upstream task input
d6tflow.invalidate_upstream(TaskTrain())

警告: 変更されたローカル ターゲットである d6tflow タスクとターゲットでのみ機能しますが、すべての luigi ターゲットでは機能しません。長い道のりを歩む必要があり、データ サイエンス ワークフロー用に最適化されています。中央サーバーではテストしていませんが、ローカル ワーカーに適しています。

于 2019-01-20T05:00:17.413 に答える