任务调度 Quartz框架-SimpleTrigger , CronTrigger

Quartz框架官网链接

Quartz工作原理:
任务:需要执行的具体工作任务
触发器:在特定的时间触发任务的执行
调度器:任务的实际执行者,负责粘合任务和触发器
这里写图片描述

创建步骤:
1.创建新的Maven项目,名字自取。
这里写图片描述

2.创建完成后,在项目的pom.xml的依赖中加入以下依赖
Quartz的依赖

<dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>1.8.6</version>
</dependency>

3.在java包内创建一个类实现Job,在里面写上要执行的内容。

package cn.ycyy.quartz;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

/**
 * @author Krystal
 * @create 2018-09-05 下午5:19
 */
public class RemindJob implements Job {

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("Lucky Day~~");
    }
}

4-1.然后创建一个调用job的类(只有SimpleTrigger)

package cn.ycyy.quartz;

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

import java.util.Date;

/**
 * @author Krystal
 * @create 2018-09-05 下午5:21
 */
public class TestMain {
    public static void main(String[] args) throws SchedulerException, InterruptedException {
        //1.创建任务job
        JobDetail jobDetail=new JobDetail("myjob","A",RemindJob.class);
        //2.创建触发器 trigger
        SimpleTrigger trigger=new SimpleTrigger("myTrigger",SimpleTrigger.REPEAT_INDEFINITELY,3000);
        //指定第一次执行任务的时间
        trigger.setStartTime(new Date(System.currentTimeMillis()+1000));
        //3.创建调度器
        //创建Scheduler工厂SchedulerFactory的实例
        SchedulerFactory factory=new StdSchedulerFactory();
        //获取调度器
        Scheduler scheduler=factory.getScheduler();
        //粘合任务和调度器
        scheduler.scheduleJob(jobDetail,trigger);

        //开始执行
        scheduler.start();
        //设置睡眠时间,时间到后关闭调度器
        Thread.sleep(20000);
        System.out.println("20秒到啦!我要关闭啦!");
        //关闭
        scheduler.shutdown();
    }
}

这里写图片描述
4-2.然后创建一个调用job的类(SimpleTrigger+CronTrigger)

package cn.ycyy.quartz;

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

import java.text.ParseException;
import java.util.Date;

/**
 * @author Krystal
 * @create 2018-09-05 下午5:21
 */
public class TestMain {
    public static void main(String[] args) throws SchedulerException, InterruptedException, ParseException {
        //1.创建任务job
        JobDetail jobDetail=new JobDetail("myjob","A",RemindJob.class);
        //2.创建触发器 trigger
        SimpleTrigger trigger=new SimpleTrigger("myTrigger",SimpleTrigger.REPEAT_INDEFINITELY,3000);
        CronTrigger cronTrigger=new CronTrigger("myCronTrigger","B","0 10 19 ? * *");//0 10 19 ? * *意思是在每天的19点10分执行cronTrigger
        //指定第一次执行任务的时间
        trigger.setStartTime(new Date(System.currentTimeMillis()+1000));
        //3.创建调度器
        //创建Scheduler工厂SchedulerFactory的实例
        SchedulerFactory factory=new StdSchedulerFactory();
        //获取调度器
        Scheduler scheduler=factory.getScheduler();
        //粘合任务和调度器
        scheduler.scheduleJob(jobDetail,cronTrigger);

        //开始执行
        scheduler.start();
        Thread.sleep(200000);
        System.out.println("20秒到啦!我要关闭啦!");
        //关闭
        scheduler.shutdown();
    }
}

以上就是简单的任务调度实现~

猜你喜欢

转载自blog.csdn.net/weixin_42828741/article/details/82427937