1. 程式人生 > >SimpleTrigger

SimpleTrigger

SimpleTrigger:在指定時間執行一次任務,或在指定時間執行多次任務。

重複次數可以是0,正整數,或者是SimpleTrigger.REPEAT_INDEFINITELY無限重複。

重複執行間隔必須為0或長整數

endTime覆蓋重複次數

package com.huiandong;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

import java.text.SimpleDateFormat;
import java.util.Date;

public class QTest {
    public static void main(String[] args) throws SchedulerException {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = sdf.format(date);

        //建立一個JobDetail示例,將該例項與HelloJobClass繫結
        JobDetail jobD = JobBuilder.newJob(QuartzJob.class)
                .withIdentity("quartz1")
                .build();
        date.setTime(date.getTime()+4000);



        Date date2 = new Date();
        date2.setTime(date2.getTime()+6000);
        //建立一個Trigger例項,定義該job立即執行,每隔2s重複執行
        //距離當前時間4s後執行且執行一次
        SimpleTrigger trig = (SimpleTrigger)TriggerBuilder.newTrigger()
                .withIdentity("Trigger", "group1")
                .withSchedule
                        (SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(2000)
//                        .withRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY))//永遠執行
                        .withRepeatCount(3))//第一次執行後接著執行3次
                .startAt(date)
                .endAt(date2)//優先於執行次數
                .build();

        //建立scheduler例項
        SchedulerFactory sf=new StdSchedulerFactory();

        Scheduler sche = sf.getScheduler();
        sche.start();
        System.out.println(format);
        sche.scheduleJob(jobD,trig);
    }
}




package com.huiandong;

import org.quartz.*;

import java.text.SimpleDateFormat;
import java.util.Date;

public class QuartzJob implements Job{

public void execute(JobExecutionContext jec) throws JobExecutionException {
//列印當前的執行時間,格式為2017-01-01 00:00:00

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(date);

System.out.println(date);
System.out.println("hello world");



}
}