Desculpe-me se já existir algum tópico tratando do assunto, estou criando um novo pois não encontrei.
Estou usando vraptor-tasks para agendar envio de e-mail e obtive o seguinte erro:
13-11-29 14:26:07,647 [ERROR] org.quartz.core.QuartzScheduler - Unable to start secheduler after startup delay.
org.quartz.SchedulerException: The Scheduler cannot be restarted after shutdown() has been called.
at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:520)
at org.quartz.core.QuartzScheduler$1.run(QuartzScheduler.java:551)
at java.lang.Thread.run(Thread.java:662)
Tarefa:
/**
* @author artur
*
*/
@ApplicationScoped
@Scheduled(fixedRate = 10000, id = "1")
public class SendMailTask implements Task {
private static Logger logger = Logger.getLogger(SendMailTask.class);
private QueuesRepository queueRepository;
private MailUtils mailer;
/**
* Tarefa que executará o envio de email se os argumentos não forem nulos
*/
public SendMailTask(QueuesRepository queueRepository, MailUtils mailer,
ScheduledThreadPoolExecutor scheduled) {
this.queueRepository = queueRepository;
this.mailer = mailer;
}
@Override
public void execute() {
try {
// envia email
System.out.println("Entrou no execute()...");
mailer.sendMail(queueRepository.findAll());
} catch (AddressException e) {
logger.error(e.getMessage());
e.printStackTrace();
} catch (MessagingException e) {
logger.error(e.getMessage());
e.printStackTrace();
}
}
}
Quero que ela seja executada automaticamente, sem que seja necessário fazer qualquer request, ou seja, assim que eu subir o server ele já fica preparado pra executar a trigger.
Desde já agradeço.