2017-09-13 3 views
0

이 문제가 발생합니다.병렬 작업 실행 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']) 

거의 도움이되지 않습니다.

건배, 디에고

답변

0

좋아, 나는 해결책을 발견했다. 내가 NextTask에서 두 개의 서로 다른 입력을 사용할 필요가 병렬로 작업 1과 Task2를 실행하기 위해

, 다음과 같이

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