zoukankan      html  css  js  c++  java
  • SimpleTrigger的使用

    SimpleTrigger的作用

    在一个指定时间段内执行一次作业任务或是在指定的时间间隔内多次执行作业任务

     使用实例1:距离当前时间4s钟后执行,且执行一次

    package com.test.quartz.myquartz;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.quartz.JobBuilder;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.quartz.SchedulerFactory;
    import org.quartz.SimpleScheduleBuilder;
    import org.quartz.SimpleTrigger;
    import org.quartz.Trigger;
    import org.quartz.TriggerBuilder;
    import org.quartz.impl.StdSchedulerFactory;
    
    public class HelloScheduler {
        
        public static void main(String[] args) throws SchedulerException {
            //打印当前的执行时间
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String currentTime = sdf.format(date);
            System.out.println("Current Time : "+currentTime);
            //获取4秒钟之后的具体时间
            date.setTime(date.getTime()+4000);
            //创建一个JobDetail实例,将该实例与HelloJob class绑定
            JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
                    .withIdentity("myJob", "group1")
                    .build();
            //创建一个Trigger实例,定义该Job距离当前时间4s钟后执行,且执行一次
            SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
                    .withIdentity("myTrigger", "group1")
                    .startAt(date)                
                    .build();
            //创建Scheduler实例
            SchedulerFactory sfact = new StdSchedulerFactory();
            Scheduler scheduler = sfact.getScheduler();
            scheduler.start();
            scheduler.scheduleJob(jobDetail, trigger);
        }
    
    }
    package com.test.quartz.myquartz;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    public class HelloJob implements Job{
        
        public void execute(JobExecutionContext context) throws JobExecutionException {        
            
            //打印当前的执行时间
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String currentTime = sdf.format(date);
            System.out.println("Current Exec Time : "+currentTime);
            //编写具体的业务逻辑        
            System.out.println("Hello world");
        }
    
    }

     实例2:距离当前时间4s钟后首次执行任务,之后每隔2秒钟重复执行任务

    package com.test.quartz.myquartz;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.quartz.JobBuilder;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.quartz.SchedulerFactory;
    import org.quartz.SimpleScheduleBuilder;
    import org.quartz.SimpleTrigger;
    import org.quartz.Trigger;
    import org.quartz.TriggerBuilder;
    import org.quartz.impl.StdSchedulerFactory;
    
    public class HelloScheduler {
        
        public static void main(String[] args) throws SchedulerException {
            //打印当前的执行时间
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String currentTime = sdf.format(date);
            System.out.println("Current Time : "+currentTime);
            //获取4秒钟之后的具体时间
            date.setTime(date.getTime()+4000);
            //创建一个JobDetail实例,将该实例与HelloJob class绑定
            JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
                    .withIdentity("myJob", "group1")
                    .build();
            //创建一个Trigger实例,定义该Job距离当前时间4s钟后首次执行任务,之后每隔2秒钟重复执行任务
            SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
                    .withIdentity("myTrigger", "group1")
                    .startAt(date)
                    .withSchedule(
                            SimpleScheduleBuilder.
                            simpleSchedule().
                            withIntervalInSeconds(2).
                            withRepeatCount(
                                    SimpleTrigger.REPEAT_INDEFINITELY)
                                    )                    
                    .build();
            //创建Scheduler实例
            SchedulerFactory sfact = new StdSchedulerFactory();
            Scheduler scheduler = sfact.getScheduler();
            scheduler.start();
            scheduler.scheduleJob(jobDetail, trigger);
        }
    
    }

     实例3:距离当前时间4s钟后首次执行任务,之后重复执行3次

    package com.test.quartz.myquartz;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.quartz.JobBuilder;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.quartz.SchedulerFactory;
    import org.quartz.SimpleScheduleBuilder;
    import org.quartz.SimpleTrigger;
    import org.quartz.Trigger;
    import org.quartz.TriggerBuilder;
    import org.quartz.impl.StdSchedulerFactory;
    
    public class HelloScheduler {
        
        public static void main(String[] args) throws SchedulerException {
            //打印当前的执行时间
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String currentTime = sdf.format(date);
            System.out.println("Current Time : "+currentTime);
            //获取4秒钟之后的具体时间
            date.setTime(date.getTime()+4000);
            //创建一个JobDetail实例,将该实例与HelloJob class绑定
            JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
                    .withIdentity("myJob", "group1")
                    .build();
            //创建一个Trigger实例,定义该Job距离当前时间4s钟后首次执行任务,之后重复执行3次
            SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
                    .withIdentity("myTrigger", "group1")
                    .startAt(date)
                    .withSchedule(
                            SimpleScheduleBuilder.
                            simpleSchedule().
                            withIntervalInSeconds(2).
                            withRepeatCount(3))                    
                    .build();
            //创建Scheduler实例
            SchedulerFactory sfact = new StdSchedulerFactory();
            Scheduler scheduler = sfact.getScheduler();
            scheduler.start();
            scheduler.scheduleJob(jobDetail, trigger);
        }
    
    }
  • 相关阅读:
    【1】windows下IOS开发基础环境搭建
    【oracle常见错误】oracle监听程序配置/“ORA-12541: TNS: 无监听程序”
    【oracle】oracle REGEXP_SUBSTR分割字符串
    【Oracle安装卸载】oracle卸载
    【oracle】一些的常用命令
    oracle备份与还原(导入导出)
    oracle导入时提示IMP-00010:不是有效的导出文件,头部验证失败
    oracle表空间扩容
    oracle实现like多关键字查询
    __builtin_ _Find_first()
  • 原文地址:https://www.cnblogs.com/zhou-test/p/9725153.html
Copyright © 2011-2022 走看看