我有一个用Luigi构建的管道,其中一些任务需要其他任务,每个任务都会创建一个文件。 类似于:
TaskA-------->TaskB---------> TaskC-------->TaskD (fileA) (fileB) (fileC) (fileD)
我第一次运行管道时,一切都运行良好并被创建。
如果我再次运行管道,则由于TaskD已经完成,因此不会运行任何内容。
如果我手动删除fileB(由TaskB创建),我预计它会被重新创建,其他所有东西都会运行,但管道会失败。
是的,文件B被重新创建,但TaskC失败,错误消息显示文件C已经存在。
是否有办法重新创建后续文件?或者覆盖fileC?
你所描述的正是Luigi的运行方式。当您指定要运行的任务时(在 luigi.build 或者cli),您可以指定需要完成哪些任务,以便Luigi认为其工作已经完成。Luigi不会关心你的管道,除非你告诉它。一种方法是通知Luigi你关心的所有任务,在这种情况下,这些任务似乎是任务B和任务D。因此,它看起来像:
luigi.build
luigi.build([TaskD(...), TaskB(...)])