user2698646
user2698646

Reputation: 11

Make the azure batch job schedule not wait on the previous iteration

I have an Azure Batch service set up with a job schedule that runs every minute. The job manager task creates 3-10 tasks within the same job.

Sometimes, one of these tasks within the job may take extremely long to complete but usually are very fast. In the event that one of the tasks takes long to apply, the next iteration of the job manager task does not begin in that case. It basically waits till all the tasks from the previous iteration have completed.

Is there a way to ensure that the job schedule keeps creating a version of the job every minute even if all the tasks from its previous iteration have not been completed?

I know one option is to make the job manager task create additional jobs instead of tasks. But preferably, I was hoping there is some configuration at the job schedule level that I can turn on that will allow the schedule to create tasks without the dependency of completion on the previous job.

Upvotes: 0

Views: 543

Answers (2)

Bevan
Bevan

Reputation: 44307

Currently, a Job Schedule can have at most one active Job under it at any given time (link) so the behavour you're seeing is expected.

We don't have any simple feature you can just "turn on" to achieve concurrent jobs from a single job schedule - but I do have a suggestion:

Instead of using the JobSchedule to run all the processing directly, use it to create "worker" jobs that do the processing.

E.g.

  • At 10:03 am, your job schedule triggers to create job processing-20191031-1003.
  • At 10:04 am, your job schedule triggers to create job processing-20191031-1004.
  • At 10:05 am, your job schedule triggers to create job processing-20191031-1005.
  • and so on

Because the only thing your job schedule does is create another job, it will finish very quickly, ensuring the next job is created on time.

Since your existing jobs already create a variable number of tasks (you said 3-10 tasks, above), I'm hoping this won't be a very complex change for your code.

Note that you will need to ensure your concurrent worker jobs don't step on each others toes by trying to do the same work multiple times.

Upvotes: 0

Tats_innit
Tats_innit

Reputation: 34107

This seems like more towards design question, AFAIK, No, the duplicate active job names should not be doable from az batch perspective. (I will get corrected if at all this is doable somehow)

Although in order to further think this you can read through various design recommendations via Azure batch technical overview page or posts like:

I think simplicity will be better like handling each iteration with unique job name or some thing of other sort but you will know your scenario better. Hope this helps.

Upvotes: 1

Related Questions