定时任务quartz

定时任务quartz

触发器 Trigger: 什么时候工作
任务 Job: 做什么工作
调度器 Scheduler: 搭配 Trigger和Job

定义一个job

实现quartz的Job接口,重写需要执行的方法。

Job 其实是由 3 个部分组成:
JobDetail: 用于描述这个Job是做什么的
实现Job的类: 具体干活的
JobDataMap: 给 Job 提供参数用的

public class MyJob implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        String format = new SimpleDateFormat("现在是yyyy-MM-dd日,具体时间: HH:mm:ss").format(new Date());
        System.out.println(format);
    }
}

调度器和触发器

@Test
    public void test() throws SchedulerException, InterruptedException {
        //获取一个定时调度器
        Scheduler scheduler = new StdSchedulerFactory().getScheduler();
        //修饰job的,比如分组
        JobDetail jobDetail = JobBuilder.newJob(MyJob.class).withIdentity("myjob","打印时间")
                .build();

        //触发器,如何触发
        SimpleTrigger trigger = newTrigger().withIdentity("mytrigger", "处理打印时间的job").startNow()
                .withSchedule(simpleSchedule()
                        .withIntervalInSeconds(2) //每隔2秒执行一次
                        .withRepeatCount(10)).build();

        //调度job和trigger
        scheduler.scheduleJob(jobDetail, trigger);
        scheduler.start();
        Thread.sleep(5000);
        scheduler.shutdown();
    }


15:20:44.324 [DefaultQuartzScheduler_Worker-3] DEBUG org.quartz.core.JobRunShell - Calling execute on job 打印时间.myjob
现在是2020-09-11日,具体时间: 15:20:44
posted @ 2020-10-17 14:18  cgl_dong  阅读(104)  评论(0编辑  收藏  举报