我试图使用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"
运行时,我在parallelTask1,parallelTask2之间遇到了运行时错误,但未实现依赖关系。
我尝试了以下链接末尾提到的解决方案: /spotify/luigi/issues
如下:
class MyWrapperTask(CustomWrapperTask):
def requires(self):
self.CACHED_REQUIRES.append(Task2)
yield req
这不能解决问题。如何解决这个问题?请不要使taskparallel1和taskparallel2都成功运行,然后在尝试运行task2时发生上述错误。