美文网首页
1.5-Quartz大哥(Trigger)

1.5-Quartz大哥(Trigger)

作者: 王子也寂寞 | 来源:发表于2017-12-11 22:21 被阅读0次

Trigger是什么?
Quartz中的触发器用来告诉调度程序作业什么时候触发.即Trigger对象是用来触发执行Job的.

一.触发器通用属性

  • JobKey
    表示job实例的标识,触发器被触发时,该指定的job实例会执行.
  • StartTime
    表示触发器首次被触发的时间.它的值得类型是Java.util.Date.
  • EndTime
    指定触发器的不再被触发的时间.它的类型是Java.util.Date.

二.Trigger通用属性的简单使用

Job类

public void execute(JobExecutionContext context) throws JobExecutionException {
        //打印当前的执行之间,格式为2017-01-01 00:00:00
        Date date = new Date();
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("Current Exec Time is : " + sf.format(date));
        //编写具体的业务逻辑
        Trigger currentTrigger = context.getTrigger();
        System.out.println(currentTrigger.getStartTime() + "-----" + currentTrigger.getEndTime());
        JobKey jobKey = currentTrigger.getJobKey();
        System.out.println(jobKey.getName() + "####" + jobKey.getGroup());
    }

scheduler类

public static void main(String[] args) {
        //创建一个JobDetail实例,将该实例与HelloJob Class绑定
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
                .withIdentity("myJob", "JobGroup1")
                .build();

        //创建一个Trigger实例,用来触发Job来执行的
        //获取距离当前时间3秒后的时间
        Date startDate = new Date();
        startDate.setTime(startDate.getTime() + 3000);
        //获取距离当前6s后的时间
        Date endDate = new Date();
        endDate.setTime(endDate.getTime() + 6000);


        //立即执行,并且每隔两秒执行一次
        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("myTrigger", "TriggerGroup1")
                .startAt(startDate)
                .endAt(endDate)
                .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2)
                        .repeatForever())
                .build();
        //创建scheduler实例,有很多工厂,这个是最简单的
        SchedulerFactory sfact = new StdSchedulerFactory();
        try {
            Scheduler scheduler = sfact.getScheduler();
            scheduler.start();
            //打印当前的执行时间
            Date date = new Date();
            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println("Current Exec Time is:" + sf.format(date));
            scheduler.scheduleJob(jobDetail, trigger);
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }

相关文章

  • 1.5-Quartz大哥(Trigger)

    Trigger是什么?Quartz中的触发器用来告诉调度程序作业什么时候触发.即Trigger对象是用来触发执行J...

  • 1.6-Quartz大哥(Trigger分支)

    一.SimpleTrigger 作用:在某一指定时间段内执行一次作业任务,或者在指定的时间间隔内多次执行作业任务....

  • zabbixApi4j-Trigger

    Trigger trigger.addependencies: 添加新的触发器依赖项trigger.create:...

  • Apex | before trigger 与 after tr

    Apex trigger有两种类型:before trigger和after trigger。在多数情况下,bef...

  • jQuery事件自动触发

    事件自动触发 trigger()和triggerHandler() trigger() triggerHandle...

  • COMP9311 Database Systems WEEK7

    1. Additional video 1.1 Aggregate 1.2 Trigger 2. Trigger ...

  • jQuery的trigger()和e.data

    1、trigger() trigger()是主动触发,意思就是说不需要做人为操作自己就会触发。 注意trigger...

  • jQuery源码解析之trigger()

    一、$().trigger()和$().triggerHandler() 的作用和区别 (1)trigger("f...

  • Trigger

    Trigger分类 TriggerMultiTriggerDataTriggerMultiDataTriggerE...

  • Trigger

    挫败感在这样一个多云的天气被点燃,引发了更多的混乱。 首先是一封经过仔细修改的个人陈述。 9月初完成了初稿之后,我...

网友评论

      本文标题:1.5-Quartz大哥(Trigger)

      本文链接:https://www.haomeiwen.com/subject/ujqbixtx.html