Reputation: 1539
I have developed a job which I want to run say after every 5 mins, but there may be certain circumstances where the job completion time may exceeds 5 mins.
I am using quartz scheduler to schedule my job using a cron expression. Is there any way to tell quartz scheduler to hold the next run of job untill first one is completed?
I am looking for something similar to -
private static final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduledWithFixedDelay(..);
Upvotes: 1
Views: 6904
Reputation: 11
http://yongjun-jiao.blogspot.com/2010/08/quartz-crontrigger-scdeuling-policy.html. If you use spring scheduling concepts http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/dynamic-language.html
Upvotes: -1
Reputation: 274532
Use a StatefulJob. From the docs:
stateful jobs are not allowed to execute concurrently, which means new triggers that occur before the completion of the execute(xx) method will be delayed.
Upvotes: 4