0
点赞
收藏
分享

微信扫一扫

使用maven 创建Quartz 任务示例_01


文章目录

  • ​​1. 创建maven项目​​
  • ​​2. 添加Quartz 依赖​​
  • ​​3. 编写Quartz配置文件​​
  • ​​4. 编写Job实现类​​
  • ​​5. 编写main函数,创建Scheduler​​
  • ​​6. 创建JobDetail​​
  • ​​7. 编写Trigger,添加JobDetail​​
  • ​​8. 启动main函数,体验Quartz定时任务​​


Quartz 支持集群,但不支持分布式,简言之,一台服务器上执行不同定时任务。

1. 创建maven项目

使用maven  创建Quartz 任务示例_01_main函数


使用maven  创建Quartz 任务示例_01_定时任务_02


使用maven  创建Quartz 任务示例_01_main函数_03


使用maven  创建Quartz 任务示例_01_main函数_04

2. 添加Quartz 依赖

<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>

3. 编写Quartz配置文件

#配置任务调度器的实例名称
org.quartz.scheduler.instanceName=MyScheduler

#定义:配置线程池中的线程数量
#作用: 决定当前项中有多少个定时任务同时执行
#配置 3 代表这个项目可以同时执行3个定时任务
org.quartz.threadPool.threadCount=3

#job存储的类,有2种存储方式 第1种存到内存 第2种存储到数据库
#这里先采用内存的存储方式
org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore

4. 编写Job实现类

package com.gblfy.job;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.time.LocalTime;

public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {

LocalTime localTime = LocalTime.now();
System.out.println("我正在执行" + localTime);
}
}

5. 编写main函数,创建Scheduler

//创建Scheduler
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();

6. 创建JobDetail

//创建JobDetail
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
//唯一标识
.withIdentity("jobDetail1", "group1")
.build();

7. 编写Trigger,添加JobDetail

//创建Trigger
Trigger trigger = TriggerBuilder.newTrigger()
//立即执行
.startNow()
//任务周期
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
//间隔周期 单位s
.withIntervalInSeconds(10)
//一直执行
.repeatForever())
.build();

//把jobDetail和trigger注册到scheduler中
scheduler.scheduleJob(jobDetail, trigger);

8. 启动main函数,体验Quartz定时任务

package com.gblfy;

import com.gblfy.job.MyJob;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzStart {

public static void main(String[] args) throws SchedulerException {
//创建Scheduler
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();

//创建JobDetail
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
//唯一标识
.withIdentity("jobDetail1", "group1")
.build();

//创建Trigger
Trigger trigger = TriggerBuilder.newTrigger()
//立即执行
.startNow()
//任务周期
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
//间隔周期 单位s
.withIntervalInSeconds(10)
//一直执行
.repeatForever())
.build();

//把jobDetail和trigger注册到scheduler中
scheduler.scheduleJob(jobDetail, trigger);
try {
Thread.sleep(60000);
} catch (InterruptedException e) {
e.printStackTrace();
}
scheduler.shutdown();
}
}

使用maven  创建Quartz 任务示例_01_main函数_05


从第一次之后没10s执行一次


举报

相关推荐

0 条评论