Quartz定时器代码
时间: 2023-10-28 18:01:28 浏览: 87
Quartz 是一个开源的、基于 Java 实现的定时任务调度框架,可以非常方便地实现定时任务的调度和管理。
下面是一个使用 Quartz 实现定时任务的示例代码:
1. 导入相关依赖包
```xml
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
```
2. 创建 Job 类
```java
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// 定时任务执行的逻辑代码
System.out.println("Hello Quartz!");
}
}
```
3. 创建 Trigger
```java
// 创建一个每分钟执行一次的 Trigger
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(60)
.repeatForever())
.build();
```
4. 创建 Scheduler
```java
// 创建 Scheduler
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
// 创建 JobDetail
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
.withIdentity("job1", "group1")
.build();
// 将 Trigger 和 JobDetail 注册到 Scheduler 中
scheduler.scheduleJob(jobDetail, trigger);
```
完整的示例代码如下:
```java
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class QuartzDemo {
public static void main(String[] args) throws SchedulerException {
// 创建 Scheduler
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
// 创建 JobDetail
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
.withIdentity("job1", "group1")
.build();
// 创建一个每分钟执行一次的 Trigger
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(60)
.repeatForever())
.build();
// 将 Trigger 和 JobDetail 注册到 Scheduler 中
scheduler.scheduleJob(jobDetail, trigger);
}
public static class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// 定时任务执行的逻辑代码
System.out.println("Hello Quartz!");
}
}
}
```
这个示例代码中创建了一个每分钟执行一次的定时任务,你可以根据需要修改 Trigger 的执行规则来实现不同的定时任务。
阅读全文