繁体   English   中英

运行并行任务SciLuigi

[英]Running parallel tasks SciLuigi

我陷入这个问题。

我正在使用SciLuigi框架进行任务管理,但是我无法运行并行任务。

class Workflow(sl.WorkflowTask):

    def workflow(self):
        task1 = self.new_task('task 1', Task1)
        task2 = self.new_task('task 2', Task2)
        next_task = sl.new_task('next task', NextTask)
        next_task.in_foo = task1.out_foo
        next_task.in_foo = task2.out_foo
        return next_task

class Task1(sl.Task):
    # No inputs.. just define outputs

    def out_foo(self):
        return sl.TargetInfo(self, 'foo1.txt'))

    def run(self):
        ...

class Task2(sl.Task):
    # No inputs.. just define outputs

    def out_foo(self):
        return sl.TargetInfo(self, 'foo2.txt'))

    def run(self):
        ...

class NextTask(sl.Task):
    # Input
    in_foo = None

    def out_foo(self):
        return sl.TargetInfo(self, 'foo3.txt'))

    def run(self):
        ...

sl.run(main_task_cls=Workflow, cmdline_args=['--workers=2'])

几乎没有帮助,将不胜感激。

干杯,迭戈

好的,我找到了解决方案。

为了并行运行Task1和Task2,我必须在NextTask中使用两个不同的输入,如下所示:

class Workflow(sl.WorkflowTask):

    def workflow(self):
        ...
        next_task.in_foo1 = task1.out_foo
        next_task.in_foo2 = task2.out_foo
        ...


    class NextTask(sl.Task): 
        # Input
        in_foo1 = None
        in_foo2 = None

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM