Problemas com Quartz!

Estou seguinde o tutorial disponibilizado no site do quartz e tenho o seguinte problema: apos realizar o “start” do trigger e “schedular” meu job, o job nao é disparado imediatamente como imaginei que aconteceria, parece que ocorre um atraso nao esperado (tambem nao comentado no tutorial). Por exemplo: schedulei um job as 12:32 e ele é disparado apenas as 13:00; schedulei um job as 13:13 e ele foi disparado as 14:00; schedulei um job as 14:21 e ele foi disparado as 15:00. Resumindo: os jobs sao disparados apenas em horarios “redondos” 12:00, 13:00, 14:00 e assim por diante. Alguem tem ideia do que esta acontecendo?

import java.util.*;
import java.text.*;
import org.quartz.*;
import org.quartz.impl.*;

public class Main{
	public static void main(String[] args){
		try{
			System.out.println("This is my hello Quartz at date: "+new SimpleDateFormat("dd/MM/yyy HH:mm:ss").format(new Date()));
			
			SchedulerFactory schedFact = new StdSchedulerFactory();
			Scheduler sched = schedFact.getScheduler();
			sched.start();
			
			JobDetail jobDetail = new JobDetail("myJob", sched.DEFAULT_GROUP, DumbJob.class);
			jobDetail.getJobDataMap().put("jobSays", "Hello World!");
			jobDetail.getJobDataMap().put("myFloatValue", 3.141f);
			jobDetail.getJobDataMap().put("myStateData", new ArrayList());

			
			Trigger trigger = TriggerUtils.makeSecondlyTrigger(1) ; 
			trigger.setStartTime(TriggerUtils.getEvenHourDate(new Date()));  
			trigger.setName("myTrigger");
			
			sched.scheduleJob(jobDetail, trigger);
			
			//sched.shutdown();

       	}
		catch(SchedulerException se){
			se.printStackTrace();
		}

	}
}

class DumbJob implements Job {
	static int count =0;
	
    public DumbJob() {
		System.out.println("Instanciando um DumJod.");
    }

    public void execute(JobExecutionContext context) throws JobExecutionException    {
		String instName = context.getJobDetail().getName();
		String instGroup = context.getJobDetail().getGroup();

		JobDataMap dataMap = context.getJobDetail().getJobDataMap();

		String jobSays = dataMap.getString("jobSays");
		float myFloatValue = dataMap.getFloat("myFloatValue");
		ArrayList state = (ArrayList)dataMap.get("myStateData");
		  
		state.add(new Date());
		if(count < 10)	{
			System.out.println("Instance " + instName + " of DumbJob says " + jobSays+ " at date: "+ new SimpleDateFormat("dd/MM/yyy HH:mm:ss").format(new Date()));
			count++;
		}
		else {
			try{
				System.out.println("Scheduler shutdown at date: "+ new SimpleDateFormat("dd/MM/yyy HH:mm:ss").format(new Date()));
				new StdSchedulerFactory().getScheduler().shutdown();
			}
			catch(SchedulerException se){
				se.printStackTrace();
			}
			
		}

    }
  }

Vc está utilizando uma expressão CRON? Onde ela está?

Pelo que entedi nessa linha vc está dizendo para o Job ser executado de hora em hora:

trigger.setStartTime(TriggerUtils.getEvenHourDate(new Date()));     

E são sempre horas “rodondas” mesmo.

Ok, valeu mesmo! Foi pura desatenção.

Abracao