Shvalb
Shvalb

Reputation: 1923

How to set new job each time with different interval

I'm pretty new to Quartz and I've come a cross the following requirement:

I need to create a scheduler that schedules single job that each time it ends it rescheduled but with calculated interval time.

For example: 1. Start job that ends after 15minutes, then when finished reschedule it to end after 1Hour, when finished reschedule it to end after 45 minutes...and so on...

The point is that when job finishes I dynamically calculate the next interval and need to fire the event again.

How to accomplish that with Quartz?

Thanks.

Upvotes: 0

Views: 132

Answers (1)

Rakesh Kumar Cherukuri
Rakesh Kumar Cherukuri

Reputation: 1271

Provided you can trigger it explicitly for the first time, something like

scheduler.addJob(jobDetail, true);
scheduler.triggerJob(jobName, groupName); //(1)

and code the job class such a way that after its main work is done, calculate the next trigger time and schedule it before job exits. Something like

scheduler.scheduleJob(jobDetail, trigger); //(2)

Note that the the job trigger in code snippet (1) removes the job after its done. That means you will have to schedule it, in (2), as if its a new job as far as scheduler is concerned.

Upvotes: 1

Related Questions