Quartz 是一个用于 Java 应用程序的开源调度框架,用于在指定的时间触发任务。下面是一个简单的步骤,说明如何在 Java 应用程序中使用 Quartz:
-
添加 Quartz 依赖项: 在项目中添加 Quartz 的相关库。你可以使用 Maven、Gradle 或手动下载 JAR 文件并添加到类路径中。以下是 Maven 的依赖配置:
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version> <!-- 使用最新版本 --> </dependency>
-
创建 Job 类: 编写一个实现
org.quartz.Job
接口的类,该接口包含一个execute
方法,用于定义任务的具体逻辑。import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class MyJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { // 在这里编写任务的具体逻辑 System.out.println("Job is running..."); } }
-
创建 Trigger: 创建一个触发器(
Trigger
),用于定义任务何时执行。Quartz 提供多种触发器类型,如SimpleTrigger
或CronTrigger
。import org.quartz.*; public class MyScheduler { public static void main(String[] args) { try { // 创建 Scheduler Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); // 启动 Scheduler scheduler.start(); // --------------------- 可以在启动前后任意添加任务 --------------------- JobDetail jobDetail = JobBuilder.newJob(MyJob.class) .withIdentity("myJob", "group1") .build(); Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("myTrigger", "group1") .startNow() .withSchedule(SimpleScheduleBuilder.simpleSchedule() .withIntervalInSeconds(10) // 每隔10秒执行一次 .repeatForever()) .build(); scheduler.scheduleJob(jobDetail, trigger); // --------------------- 可以在启动前后任意添加任务 --------------------- // 关闭 Scheduler Thread.sleep(60000); scheduler.shutdown(); } catch (SchedulerException | InterruptedException e) { e.printStackTrace(); } } }
-
运行调度器: 在应用程序中实例化
Scheduler
并启动它。在这个例子中,调度器会执行一个简单的任务,每隔10秒执行一次,运行一分钟后停止。
这只是一个简单的入门示例,Quartz 还提供了更多高级的特性,如持久化、集群支持、监听器等。你可以根据实际需求去进一步探索和配置。