Dúvida na criação de uma Quartz Trigger para executar uma vez por mês

Eae pesoal, blz?

Estou com uma dúvida sobre como criar uma Trigger para o Quartz que dispare a execução de um Job mensalmente.

Estou usando o método TriggerUtils.makeMonthlyTrigger(String trigName, int dayOfMonth, int hour, int minute). O problema é que se for configurado o dia 31 e o mês possuir 30 dias a trigger não será disparada. No mês de Fevereiro também teriamos problema, assim como em todos os outros meses que tem 30 dias.

Alguém sabe se é possível executar a Trigger após a data agendada, no caso da mesma não ter sido executada na data anterior?
Ex: Configuro a Trigger para executar no dia 31 às 13:00 horas. No mês de Março a mesma será executada sem problemas, porém, no mês seguinte, Abril, a mesma não será executada.

Se alguém tiver alguma dica eu agradeço.

[]'s

Dá muita diferença se executar no ultimo dia do mes… ou no primeiro do mes seguinte?

Então, o problema é que o usuário é que vai configurar o dia. Caso ele escolha dias entre 29 e 31 aí os problemas poderiam ocorrer.

Usando cron triggers dá pra fazer (mas nao sei se nao tem jeito de fazer do jeito que vc tá fazendo tb, as vezes tem… outras pessoas podem falar)

http://www.ibm.com/developerworks/java/library/j-quartz/ Talvez ajude

Acho que a expressao vai ser algo mais ou menos assim (nao sei se tá certo… provavelmente nao esteja)

0 0 13 L 0/1 *

Blz, vou dar uma olhada.

Valeu!

[]'s

Humm… se o usuário vai escolher o dia… complica mais um pouco

Eu fiz aqui uma tarefa pra executar de hora em hora com spring e quartz ai dentro do método que executa eu preciso criar varias tarefas com quartz pra executar apenas uma vez de acordo com a hora em uma tabela no banco.

Perguntas:

  1. Como eu faço pra rodar apenas uma vez uma, no exemplo que eu fiz aqui ele roda de 10 em 10 segundos?

[code]Scheduler agendador = StdSchedulerFactory.getDefaultScheduler( );
JobDetail detalhe = new JobDetail(“Tarefa exemplo”, Scheduler.DEFAULT_GROUP, Tarefa.class);

		Trigger trigger = TriggerUtils.makeSecondlyTrigger( 10 );
		trigger.setName("Trigger exemplo");
		trigger.setStartTime(new Date());
		
		agendador.scheduleJob(detalhe,trigger);
		agendador.start();[/code]
  1. E quando completar uma hora que a primeira tarefa executou como eu faço pra cancelar as tarefas que foram criadas…?

Grato

Ichi cara, agora vc me apertou… nao sei de cabeça…

Dá uma olhada na documentação do quartz… para ver esses detalhes…

Na verdade conheço bem pouco de quartz… :frowning: