简单quartz案例

需要导入的包:

<dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.4</version>
      <scope>provided</scope>
    </dependency>
<dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.1</version>
    </dependency>
<dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz-jobs</artifactId>
      <version>2.2.1</version>
    </dependency>

工具类

private static final Logger log = org.slf4j.LoggerFactory.getLogger(Demo1.class);

public static void main(String[] args) throws Exception {
//1.创建Scheduler的工厂
SchedulerFactory sf = new StdSchedulerFactory();

    //2.从工厂中获取调度器实例
    Scheduler scheduler = sf.getScheduler();


    //3.创建JobDetail
    JobDetail jb = JobBuilder.newJob(测试类名:test.class)
            .withDescription("this is a ram job") //job的描述
            .withIdentity("ramJob", "ramGroup") //job 的name和group
            .build();
    //向任务传递数据
    JobDataMap jobDataMap = jb.getJobDataMap();
    jobDataMap.putAsString("orderId", 100100);

    //任务运行的时间,SimpleSchedle类型触发器有效
    long time = System.currentTimeMillis() + 3 * 1000L; //3秒后启动任务
    Date statTime = new Date(time);

    //4.创建Trigger
    //使用SimpleScheduleBuilder或者CronScheduleBuilder
    Trigger t = TriggerBuilder.newTrigger()
            .withDescription("")
            .withIdentity("ramTrigger", "ramTriggerGroup")
            .startAt(statTime)  //默认当前时间启动
            .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(3).withRepeatCount(3))//间隔3秒,重复3次
            //.withSchedule(CronScheduleBuilder.cronSchedule("0/3 * * * * ?")) //3秒执行一次
            .build();

    //5.注册任务和定时器
    scheduler.scheduleJob(jb, t);

    //6.启动 调度器
    scheduler.start();
  
}

测试类
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41251714/article/details/84033884