JobRunr - Trying to run multiple recurring jobs with Spring Boot

1.3k views Asked by At

I am using JobRunr to run my background jobs and in this I am providing the users to setup recurring jobs using an endpoint like below:

@PostMapping("/schedule-recurring")
    public String scheduleRecurring(@RequestBody ExecutionJob executionJob) {
        return BackgroundJob.scheduleRecurrently(executionJob.getId(),executionJob.getCronExpression(), ()
                -> jobService.executeSomeJob(executionJob, JobContext.Null));
    }

These jobs could run in 5 mins, 10 mins or it might sometimes take upto 4 hours. This all depends on how many records to process. Right now, I am in a phase where I have only one background job server since I am building a POC for this. However, in future we plan to scale it to support 1 instance per customer having one or multiple background job server based on the client license.

My issue here is that, I have 2 recurring jobs which run 1 hour apart from each other. The first recurring job executes for more than 1 hour and deems the second job unexecuted, because this job is not triggered as there is no available Background Job Worker to address this request. I am thinking of adding a check to the job to trigger itself only if a Background Job Worker is available. But is there a better idea where-in the schedule-recurring method itself adds a condition to queue the job if a Background Job worker is not available?

Thanks in advance.

0

There are 0 answers