У меня бин, управляемый сообщениями:
@MessageDriven(activationConfig={@ActivationConfigProperty(propertyName="cronTrigger", propertyValue="* * * * * ?")})
@ResourceAdapter(value="quartz-ra.rar")
public void SomeJob implements Job {
@Override
public void execute(final JobExecutionContext job) throws JobExecutionException() {}
}
Теперь я понимаю, что если я изменю SomeJob на StatefulJob
, в один момент времени произойдет только одно выполнение. Каждый триггер будет ожидать завершения предыдущего задания. Это то, что мне нужно, я видел, что StatefulJob
устарело, а @DisallowConcurrentExecution
- замена. Работает ли это с EJB-управляемыми бобами, управляемыми дестагами?
Другая проблема (вполне может заслуживать нового вопроса), если моя работа запускается каждую секунду (как указано выше), но иногда требуется минута, чтобы выполнить то, что происходит с отставанием заданий. Есть ли максимальный размер в бэклоге, это приведет к ошибке в какой-то момент? Есть ли способ заставить задания игнорироваться, если задание выполняется в данный момент?