inluigi.contrib.external_program.ExternalProgramTask
.
每个任务都在不同的目录上调用bash脚本,我想在它们之间添加依赖关系:
class ATask(ExternalProgramTask):
def program_args(self):
return my_script_a.split()
class BTask(ExternalProgramTask):
def requires(self):
return ATask()
def program_args(self):
return my_script_b.split()
if __name__ == '__main__':
luigi.build([BTask()], workers=2, local_scheduler=False)
File .../local/lib/python2.7/site-packages/luigi/worker.py", line 182, in run
raise RuntimeError('Unfulfilled %s at run time: %s' % (deps, ', '.join(missing)))
RuntimeError: Unfulfilled dependency at run time: ATask__...
据我所知,每项任务本身都完成得很好(我可以看到
ATask
在visualizer中完成正常,并且BTask正在输出成功运行的预期值),但是这种依赖性在某种程度上是混乱的。
从我所看到的,我需要定义一个
output
方法,并确保目标将存在,例如添加:
def output(self):
return luigi.LocalTarget('foo')
到
,
,因为我无法覆盖
run
在这些任务中(因为他们
ExternalProgramTask
子类),我不能创建那个文件(目标)。我怎样才能让BTask明白
Atask
完成了没问题?