您的位置:首页 > 其它

Quartz两种不同类型的Trigger实现

2017-09-07 20:38 183 查看
定时任务的触发有好几种模式,目前比较常用的是cronTrigger表达式和SimpleTrigger,下面是这两种实现方式的示例:

public class QuartzCronExample {

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

        

        //创建scheduler

        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

        //启动scheduler

        scheduler.start();

        

        Class jobClass = Class.forName("com.alibaba.test.quartzdemo.HandleJobMsg");

        //创建jobDetail实例

        JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity("jobName1", "jobGroup1").build();

        JobDetail jobDetail1 = JobBuilder.newJob(jobClass).withIdentity("jobName2", "jobGroup2").build();

        

        //创建CronTrigger

        CronScheduleBuilder builder = CronScheduleBuilder.cronSchedule("0 0/5 * * * ?");

        Trigger trigger = TriggerBuilder.newTrigger()

                .withIdentity("jobName1", "jobGroup1")

                .startNow()

                .withSchedule(builder)

                .build();

        

        //创建SimpleTrigger

        SimpleTrigger simpleTrigger = TriggerBuilder.newTrigger()

                .withIdentity("jobName2", "jobGroup2")

                .startAt(new Date())//设置一个出发起始时间

                .withSchedule(SimpleScheduleBuilder.simpleSchedule()

                .withIntervalInMilliseconds(10)//指定一个重复间隔,以毫秒为单位

                .withRepeatCount(1000))//指定重复的次数

                .build();

        

        //执行调度

        scheduler.scheduleJob(jobDetail, trigger);

        

        scheduler.scheduleJob(jobDetail1, simpleTrigger);

        

        Thread.sleep(10000L);

        

        //停止scheduler

        scheduler.shutdown();

        

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: