是不是quartz 的 crontrigger 不能和 setStartTime一起使用?

lyojbuilder發表於2006-10-18
我用的是 quartz1.5.2 .
我使用以下程式碼

public static void main(String[] lyo)throws Exception{
		SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();

        Scheduler sched = schedFact.getScheduler();

        

        JobDetail jobDetail = new JobDetail("CDCJob",
                                            "defaultGroup",
                                            JobTest.class);

        String cronExpress="0 33 07 * * ?";
        String startTime="2006-10-18 07:32:03";
        CronTrigger  trigger = new CronTrigger("CDCTrigger", "defaultGroup"); // fire every hour

        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date da=sdf.parse(startTime);
        log.debug("get da: "+da);
        trigger.setStartTime(da);  // start on the next even hour
        trigger.setCronExpression(cronExpress);

        sched.scheduleJob(jobDetail, trigger);
        sched.start();
	}


其中我發現如果用了 Crontrigger 這種 觸發器的話,他的 setStartTime就不起作用,以上程式碼是再 7:33 執行的,而不是 7:32! 是不是 crontrigger的設定會與 setStartTime有衝突?! 其他的Trigger,例如SimpleTrigger的setStartTime方法都是可以使用的! 那位用過 setStartTime方法的朋友解釋一下! :?

相關文章