The next step is to build a more robust dependency system
Building on what we have learnt in the previous tutorials this tutorial will:
- Give example of JobLabel for linking jobs
- Give example of Dependency linking to JobLabel
- Shows correct dependency graph in the Qube! GUI
Feel free to download an run the below script as it setup a job that will :
- Create a Parent "Sleep job" with a range of 60
- Create a Blocked Child "Sleep job" that links to the Parent job and waits for a complete status before starting
This script differs from the rest quiet a lot
task = []
To create a list of jobs that are submitted
task.append(job)
Combines the list of jobs for final submission by
listOfSubmittedJobs = qb.submit(task)
With this method the jobs are not submitted per "job = {}" instead combined and submitted once all tasks have completed
job['label']= 'ParentLabel'
This creates a internal label for the job which is assessed at submission time
job['dependency'] = 'link-complete-job-ParentLabel'
The Child job then uses the internal label to link to the Parent job.
Here are some examples of how you can link the jobs :
job['dependency'] = 'link-complete-job-ParentLabel'
This will run once the Parent job is complete
job['dependency'] = 'link-failed-job-ParentLabel'
This will run once the Parent job is failed
job['dependency'] = 'link-killed-job-ParentLabel'
This will run if the Parent job has been killed
job['dependency'] = 'link-done-job-ParentLabel'
This will run once the Parent job returns a status of done. Done means if the job completes,fails or has been killed
You can also link jobs by different types
job['dependency'] = 'link-done-work-ParentLabel'
This will run depending on the status of the jobs work
job['dependency'] = 'link-done-subjob-ParentLabel'
This will run depending on the status of the jobs subjobs
Continue to