Bom dia,
estou utilizando o Quartz em uma app com java SE, a aplicação funciona de boa porém gostaria de garantir que minhas Jobs executassem em fila e de uma forma sincrona uma após a outra ex: gostaria que a job2 só executasse depois que a job1 terminar ja li a doc mas não entendi como fazer vi que tem as annotation que utilizo para evitar multiplas instancias executanto simultaneamente que daria o mesmo que implementar a interface StatefulJob, utilizo a versão 2.1.7 que são:
Alguem ja fez algo do tipo que possa me ajudar ?
@DisallowConcurrentExecution
@PersistJobDataAfterExecution
public class JobImportaTXT implements Job {
Aqui adiciono minhas Jobs…
private static void startScheduler() {
SchedulerNFSe agenda = new SchedulerNFSe();
agenda.addJob(JobImportaTXT.class);
agenda.addJob(JobGeraLote.class);
agenda.addJob(JobEnviaLote.class);
agenda.addJob(JobConsultaSituacaoLote.class);
agenda.addJob(JobConsultaLote.class);
agenda.addJob(JobCancelarNfse.class);
agenda.start();
}
/**
* Adicionando serviços.
*
* @param object
*/
public void addJob(Class object) {
try {
// Cria instância da fabrica.
StdSchedulerFactory schedFactory = new StdSchedulerFactory();
// Busca o agandador.
scheduler = schedFactory.getScheduler();
// Cria uma tarefa para ser executada..
JobDetail jobBean = new JobDetailImpl(object.getName(), Scheduler.DEFAULT_GROUP, object) {
};
// Configuro os parametros.
SimpleTrigger parametros = new SimpleTriggerImpl(object.getName(), Scheduler.DEFAULT_GROUP, new Date(), null, SimpleTrigger.REPEAT_INDEFINITELY, 300L * 1000L);
// Parâmetros para o agendamento.
java.util.Date data = scheduler.scheduleJob(jobBean, parametros);
// Log
getLog().info(new SimpleDateFormat().format(data));
} catch (Exception ex) {
logger.error(ex.getMessage());
}
}