任务调度 Quartz 学习(二) CronTrigger

 在Quartz中Trigger有 SimpleTrigger与CronTrigger两种:

  SimpleTrigger:当需要的是一次性的调度(仅是安排单独的任务在指定的时间及时执行),或者你需要在指定的时间激活某个任务并执行N次,设置每次任务执行的间隔时间T。那此时使用SimpleTrigger将是非常方便的。

  CronTrigger: 如果需要安排的任务时基于日期的-比如"每个星期五正午"或者"每个月10号的10:15",使用CronTrigger将是非常有用的。

  在上一篇的例子中使用的是SimpleTrigger,这次写个CronTrigger的例子。

Example:

 

public class MyJob implements Job{

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("测试quartz"+new Date());
    }

    //CronTrigger
    //其他定义与SimpleTrigger没有区别,只是在定义Trigger的时候有所改变
    public static void cronTrigger() throws SchedulerException {
        SchedulerFactory sf=new StdSchedulerFactory();
        Scheduler sche=sf.getScheduler();

        JobDetail jobDetail=JobBuilder.newJob(MyJob.class).withIdentity("job2","group2").build();
        CronTrigger cron=TriggerBuilder.newTrigger().withIdentity("trigger2","group2")
                .startNow()
                .withSchedule(CronScheduleBuilder.cronSchedule("0/20 * * * * ?")).build();  //每隔20秒运行一次
                                                                                            //("15 0/2 * * * ?")偶数分钟的第15秒执行一次
                                                                                            //("0 0/2 8-17 * * ?")8时到17时的每个偶数分钟执行一次
                                                                                            //("0 0/3 17-23 * * ?")17-23时,每3分钟执行一次

        sche.scheduleJob(jobDetail,cron);
        sche.start();


    }

    public static void main(String[] args) throws SchedulerException {

        cronTrigger();
    }
}

 

 

 

  

 

posted @ 2016-02-16 13:35  wandy丶  阅读(931)  评论(0编辑  收藏  举报