简单的quartz例子

1.引入jar

        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>

2.创建一个实现job的类

public class TimerJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
    	//打印时间
        System.out.println(DateUtil.getDate());
    }
}

3.创建一个开始job的函数

public static void main(String[] args) throws SchedulerException {
        //执行时间
        Date runTime = DateBuilder.evenSecondDateAfterNow();
        //创建一个jobDetail的实例
        JobDetail jobDetail = JobBuilder.newJob(TimerJob.class).withIdentity("TimerJob").build();
        //创建一个SimpleTrigger触发器,指定时间,时间间隔毫秒
        Trigger trigger = TriggerBuilder.
                newTrigger().
                withIdentity("trigger ").
                //设置触发开始的时间
                startAt(runTime).
                //startNow().//现在执行
                withSchedule(
                        	SimpleScheduleBuilder.
                            //都要有
                            simpleSchedule().
                            //1秒钟
                            withIntervalInSeconds(1).
                            //一直执行
                            repeatForever()
                ).
                build();
        //创建scheduler实例
        StdSchedulerFactory factory = new StdSchedulerFactory();
        Scheduler scheduler = factory.getScheduler();
        //放进去
        scheduler.scheduleJob(jobDetail,trigger);
        scheduler.start();
}
public static void main(String[] args) throws SchedulerException {
        //执行时间
        Date runTime = DateBuilder.evenSecondDateAfterNow();

        //创建一个jobDetail的实例,将该实例与TimerJob.Class绑定
        JobDetail jobDetail = JobBuilder.newJob(TimerJob.class).withIdentity("TimerJob").build();
        //建一个Trigger
        Trigger trigger = TriggerBuilder.newTrigger().
                withIdentity("myTrigger").
                //设置触发开始的时间
                startAt(runTime).
                withSchedule(CalendarIntervalScheduleBuilder.
                            // 都要有
                            calendarIntervalSchedule().
                            //秒
                            withIntervalInSeconds(1)
//                            //分钟
//                            withIntervalInMinutes(1).
//                            //小时
//                            withIntervalInHours(1).
//                            //天
//                            withIntervalInDays(1).
//                            //周
//                            withIntervalInWeeks(1).
//                            //月
//                            withIntervalInMonths(1).
//                            //年
//                            withIntervalInYears(1)
                ).build();


        //创建schedule实例
        StdSchedulerFactory factory = new StdSchedulerFactory();
        Scheduler scheduler = factory.getScheduler();
        scheduler.start();
        scheduler.scheduleJob(jobDetail,trigger);
    }

4.创建一个移除job的函数

    public static void removeWorkOrderJob(Map<String,Object> param){
        try {
            /**
             * 根据""暂停触发器
             */
            SchedulerFactory schedulerFactory = new org.quartz.impl.StdSchedulerFactory();

            Scheduler scheduler = schedulerFactory.getScheduler();
            TriggerKey triggerKey = TriggerKey.triggerKey(String.valueOf(param.get("id")),"workOderTriggerGroup"
            );
            // 停止触发器
            scheduler.pauseTrigger(triggerKey);
            // 移除触发器
            scheduler.unscheduleJob(triggerKey);
            // 删除任务
            scheduler.deleteJob(JobKey.jobKey(String.valueOf(param.get("id")), "workOderJobGroup"));
            System.out.println("删除定时任务,名称"+String.valueOf(param.get("id")));
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值