Five Stars

How do I add enforce subJob execution depending on successful completion of 2 other sub jobs

I have requirement where in 2 subjobs run in parallel within a parent job. A third sub job needs to run only when both the previous 2 subjobs have completed successfully.

 

How do i connect this flow? Do note that I do not have any requirement to pass the data from one subjob to another. All 3 are independent jobs.

 

I tried onComponenetOK and onSubJobOK but I dont seem to be able to connect them from 2 subjobs to the 3rd subjob.

 

Any guidance or help would be really appreciated.

Thanks.

2 REPLIES
Six Stars

Re: How do I add enforce subJob execution depending on successful completion of 2 other sub jobs

Hello,

 

Wich Version of Talend do you have ?

 

1 - If you have the paid version you could use the component tParallelize with the option :

"Wait For / end of all subjobs: sequence the relevant subjob to be executed at the end of all subjobs"

Look at here : https://help.talend.com/reader/KxVIhxtXBBFymmkkWJ~O4Q/J2Gx1RZDoO6xyhQalZJqUQ

 

2 - You can also put the unloading subjobs into one job that is set for multi-thread execution (see Job/Extra tab) and then call that job in another job using a tRunJob linked with OnSubjobOK to the processing subjob.

 

3- You can also try a tPostJob. It will run a final subjob after all other components are complete.

Five Stars

Re: How do I add enforce subJob execution depending on successful completion of 2 other sub jobs

Thanks Aman for responding. I use paid version, Talend Studio for Big Data.

 

1. This solution would not suffice as my requirement is to trigger the job only upon SUCCESSFUL completion of the previous 2 jobs. In case they fail, the 3rd job should not be triggered. tParallelize would not satisfy that.

 

2. Moving the jobs into yet another job for the purpose of parallel execution would not satisfy in my case as my parent job has > 20 sub jobs and the 3 I mentioned are among them. And I have >10 such parent jobs. I do not want to move them to another subjob. In worst case, I can live with sequential execution but adding an extra job just for orchestration, I would like to avoid.

 

3. This solution too has the same issue as with solution 1. It just waits but does not take into account the successful execution of the previous job