【发布时间】:2023-04-05 01:11:02
【问题描述】:
我有一个简单的管道。
我想用 ID 2381 启动一次,然后在第一个作业运行时,我想用 ID 231 开始第二次运行。第一次运行按预期完成。
第二次运行返回此响应
Pid(s) set([10362]) already running
Process finished with exit code 0
我是这样开始跑步的
运行一个:
luigi.run(
cmdline_args=["--id='newId13822'", "--TaskTwo-id=2381"],
main_task_cls=TaskTwo()
)
运行两个:
luigi.run(
cmdline_args=["--id='newId1322'", "--TaskTwo-id=231"],
main_task_cls=TaskTwo()
)
每个任务都有一个由 luigi 的 task_id_str(...) 方法生成的唯一 ID。为什么 luigi.paramater、TaskTwo-id 和 MockTarget 文件都不同时,luigi 认为任务已经在运行?
管道代码:
import time
import uuid
from luigi.mock import MockTarget
import luigi
class TaskOne(luigi.Task):
run_id = luigi.Parameter()
def output(self):
return MockTarget("TaskOne{0}".format(self.run_id), mirror_on_stderr=True)
def run(self):
_out = self.output().open('w')
time.sleep(10)
_out.write(u"Hello World!\n")
_out.close()
class TaskTwo(luigi.Task):
id = luigi.Parameter(default=uuid.uuid4().__str__())
def output(self):
return MockTarget("TaskTwo{0}".format(self.id), mirror_on_stderr=True)
def requires(self):
return TaskOne(self.id)
def run(self):
_out = self.output().open('w')
time.sleep(10)
_out.write(u"Hello World!\n")
_out.close()
【问题讨论】:
标签: python parallel-processing pipeline luigi