Кварц 1
Если вы измените свой класс для реализации StatefulJob вместо Job, Quartz позаботится об этом за вас. От StatefulJob Javadoc :
Задания с состоянием запрещены
выполнять одновременно, что означает новый
триггеры, которые происходят до
завершение метода execute (xx)
будет отложено.
StatefulJob расширяет Job и не добавляет никаких новых методов, поэтому все, что вам нужно сделать, чтобы получить желаемое поведение, изменить это:
public class YourJob implements org.quartz.Job {
void execute(JobExecutionContext context) {/*implementation omitted*/}
}
К этому:
public class YourJob implements org.quartz.StatefulJob {
void execute(JobExecutionContext context) {/*implementation omitted*/}
}
Кварц 2
В версии 2.0 Quartz StatefulJob
устарела. Теперь вместо этого рекомендуется использовать аннотации, например
@DisallowConcurrentExecution
public class YourJob implements org.quartz.Job {
void execute(JobExecutionContext context) {/*implementation omitted*/}
}