任务调度 Quartz 学习 CronTrigger

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了任务调度 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();
    }
}

 

 

 

  

 

以上是关于任务调度 Quartz 学习 CronTrigger的主要内容,如果未能解决你的问题,请参考以下文章

任务调度 Quartz 学习 CronTrigger

分布式定时任务调度框架Quartz学习与实战记录完整篇

分布式定时任务调度框架Quartz学习与实战记录完整篇

分布式定时任务调度框架Quartz学习与实战记录完整篇

分布式定时任务调度框架Quartz学习与实战记录完整篇

Dubbo学习系列之十二(Quartz任务调度)