如何覆盖 luigi complete() 方法,以便底层任务知道之前的任务已经完成?

How to override luigi complete() method so that the underlying task will come to know the previous ones were completed?

我有以下任务:

class TaskA(ExternalProgramTask):
    def program_args(self):
        return ["/simpleScripts/shell5.bash"]
    def program_environment(self):
        env = os.environ.copy()
        return env

shell 脚本 运行 正确。在此之后,如果我尝试 运行 任何其他任务,这些任务将因在 TaskA 中抛出 "unfulfilled dependency error" 而失败。

我理解的原因是 Luigi 通常会在创建 localTarget 时使用 output() 方法,因此 Luigi 会知道该任务已完成。

在 运行ning shell 脚本中,我没有任何 localTarget,因此 luigi无法理解它是否完成。如何使其正确?

重写 Luigi 的 complete 方法,return如果所有需要的操作都完成则为真

class TaskA(luigi.Task):
    data_text = luigi.Parameter()

    def complete(self):
        print("The task is complete")
        print("The data text", self.data_text)
        return True

luigi --module [File_Name] TaskA --data-text "Welcome" --local-scheduler