在Luigi中将Shell脚本作为并行任务运行时未实现依赖性

时间:2018-11-30 12:00:30

标签: python shell workflow luigi

我试图使用Luigi如下并行运行shell脚本:

class Task2(ExternalProgramTask):
    def requires(self):
        return[TaskParallel1(), TaskParallel2()]
    def program_args(self):
        return ["/simpleScripts/shell6.bash"]
    def program_environment(self):
        env = os.environ.copy()
        return env

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

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

在通过命令"luigi --module runShell Task2 --workers 2"运行时,我在parallelTask​​1,parallelTask​​2之间遇到了运行时错误,但未实现依赖关系。

我尝试了以下链接末尾提到的解决方案: /spotify/luigi/issues

如下:

class MyWrapperTask(CustomWrapperTask):
    def requires(self):
        self.CACHED_REQUIRES.append(Task2)
        yield req

这不能解决问题。如何解决这个问题?请不要使taskparallel1和taskparallel2都成功运行,然后在尝试运行task2时发生上述错误。

0 个答案:

没有答案