在 Quartz 中,你可以定义和调度多个 Job。每个 Job 都有对应的 JobDetail 和 Trigger。
1. 添加依赖
确保你的项目中包含 Quartz 的依赖。例如,如果你使用的是 Maven,可以在 pom.xml
中添加以下依赖:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
2. 创建 Job 类
首先,编写两个实现 Job
接口的类;每个类包含要执行的任务。
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class JobOne implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Executing JobOne at " + System.currentTimeMillis());
}
}
public class JobTwo implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Executing JobTwo at " + System.currentTimeMillis());
}
}
3. 配置调度器
创建一个调度器并配置两个 Job 及其各自的触发器。
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class QuartzScheduler {
public static void main(String[] args) throws SchedulerException {
// 创建调度器
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 定义第一个作业和触发器
JobDetail jobOne = JobBuilder.newJob(JobOne.class)
.withIdentity("jobOne", "group1")
.build();
Trigger triggerOne = TriggerBuilder.newTrigger()
.withIdentity("triggerOne", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5) // 每5秒执行一次
.repeatForever())
.build();
// 定义第二个作业和触发器
JobDetail jobTwo = JobBuilder.newJob(JobTwo.class)
.withIdentity("jobTwo", "group2")
.build();
Trigger triggerTwo = TriggerBuilder.newTrigger()
.withIdentity("triggerTwo", "group2")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(10) // 每10秒执行一次
.repeatForever())
.build();
// 将作业和触发器注册到调度器中
scheduler.scheduleJob(jobOne, triggerOne);
scheduler.scheduleJob(jobTwo, triggerTwo);
// 启动调度器
scheduler.start();
}
}
4. 启动应用
运行 QuartzScheduler
类中的 main
方法,Quartz 将根据配置的触发器执行 JobOne
和 JobTwo
。
总结
以上示例展示了如何在 Quartz 中配置和调度两个独立的 Job。关键步骤包括:
-
定义 Job 类:每个 Job 类实现
Job
接口并定义具体的业务逻辑。 -
配置调度器:为每个 Job 创建
JobDetail
和Trigger
,然后将它们注册到调度器中。 -
启动调度器:调用
scheduler.start()
方法启动调度器,使其开始根据触发器的配置执行 Job。
通过这种方式,你可以轻松地管理和调度多个任务。
标签:Quartz,调度,Job,quartz,scheduler,简单,org,定时,public From: https://blog.csdn.net/wu137789/article/details/139859254