A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 wuwei丶 于 2018-8-23 15:10 编辑

导入quartz坐标
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
</dependency>



定义一个Job
public class MyJob implements Job{
    //任务被触发执行此方法
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
       System.out.println("任务被调用了..."+new Date());
    }
}

编写定时任务程序
两种不同Trigger
1)简单触发器 (SimpleTrigger)
     简单地按照秒,分,小时进行重复执行。
2)日历触发器 (CronTrigger)
     按照日历规则(日历表达式)进行重复执行

简单触发器定时任务
public class SimpleTriggerDemo {
    public static void main(String[] args) throws Exception {
       //1.创建Job对象
       JobDetailjob = JobBuilder.newJob(MyJob.class).build();
       //2.创建Trigger对象
       Triggertrigger = TriggerBuilder
                         .newTrigger()
                         .withSchedule(SimpleScheduleBuilder.repeatSecondlyForTotalCount(5, 3))
                         .build();
       //3.创建Scheduler对象
       Schedulerscheduler = StdSchedulerFactory.getDefaultScheduler();
       //关联JobTrigger
       scheduler.scheduleJob(job, trigger);
       //4.启动任务
       scheduler.start();
       //手动停止任务
       //17秒后停止任务
       Thread.sleep(17000);
       scheduler.shutdown();      
    }  
}

日历触发器定时任务
public class CronTriggerDemo {
    public static void main(String[] args) throws Exception {
       //1.创建Job对象
       JobDetailjob = JobBuilder.newJob(MyJob.class).build();   
       //2.创建Trigger对象
       Triggertrigger = TriggerBuilder
                         .newTrigger()
                         //日历表达式
                         .withSchedule(CronScheduleBuilder.cronSchedule("0 33 10 * * ? *")  )
                         .build();
       //3.创建Scheduler对象
       Schedulerscheduler = StdSchedulerFactory.getDefaultScheduler();
       //关联JobTrigger
       scheduler.scheduleJob(job, trigger);
       //4.启动任务
       scheduler.start();
    /*  //手动停止任务
       //17秒后停止任务
       Thread.sleep(17000);
        scheduler.shutdown();*/   
    }  
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马