便捷网站建设价格,不用备案的网站,图片在线编辑器免费,宝塔面板怎么搭建网站文章目录 前言一、Quartz 是什么#xff1f;下面是对 Java 中 Quartz 的主要概念的简单描述#xff1a; 二、使用步骤总结 前言
平时开发中相信大家都经常用到定时任务吧#xff0c;最近简单的就是直接使用Scheduled注解标注到方法上用注解的方式在项目运行时无法去对任务进… 文章目录 前言一、Quartz 是什么下面是对 Java 中 Quartz 的主要概念的简单描述 二、使用步骤总结 前言
平时开发中相信大家都经常用到定时任务吧最近简单的就是直接使用Scheduled注解标注到方法上用注解的方式在项目运行时无法去对任务进行管理。现在开发过程中用得比较多的就是Quartz框架了。下面直接介绍其最常见的使用方式。 一、Quartz 是什么
Quartz 是一个功能强大的开源作业调度库用于在 Java 应用程序中实现任务调度和定时任务。它提供了灵活的调度机制可以根据时间表、间隔或条件触发任务的执行。
下面是对 Java 中 Quartz 的主要概念的简单描述 任务Job: Quartz 中的任务是可以执行的工作单元。你可以创建实现 org.quartz.Job 接口的类并在其中定义任务的逻辑。 触发器Trigger: 触发器用于定义任务何时执行的规则。Quartz 提供了多种类型的触发器例如简单触发器SimpleTrigger和 Cron 触发器CronTrigger。你可以配置触发器的执行时间、重复间隔和触发条件等。 调度器Scheduler: 调度器是 Quartz 的核心组件用于管理任务和触发器。它负责根据配置的规则触发任务的执行并管理任务的调度、暂停、恢复等操作。 作业存储Job Store: 作业存储是 Quartz 用于存储任务和触发器信息的持久化机制。它可以将任务和触发器的状态保存在内存中或者在数据库中进行持久化。
二、使用步骤 本次示例使用JDBCJobStoremysql存储任务的方式实现这种方式也是实际开发中用得最多的方式 在你的 Spring Boot 项目中添加 spring-boot-starter-quartz 依赖。 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-quartz/artifactId
/dependency初始化脚本org.quartz.impl.jdbcjobstore包下面存放了各数据库初始化脚本本次实验demo下载的是tables_mysql_innodb.sql ps:github 上也提供了脚本并且也有各种demo。Quartz github 脚本下载地址mysql_innodb.sql 创建一个实现了 org.quartz.Job 接口的任务类该接口定义了任务的执行逻辑。例如你可以创建一个名为 MyJob 的类实现 Job 接口并重写 execute 方法。 import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;public class MyJob implements Job {Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {// 执行你的任务逻辑System.out.println(Hello, Quartz!);}
}在你的应用程序中配置 Quartz 调度器和触发器。可以通过创建一个 SchedulerFactoryBean Bean 来配置 Quartz 调度器并将触发器与任务关联。以下是一个简单的配置示例
Component
public class StartJob {Autowiredprivate Scheduler scheduler;// 实际开发中创建任务关键参数可以通过接口的进行增删改查维护定时任务这样就可以动态的去控制定时任务了PostConstruct public void start() throws SchedulerException {//创建触发器 定义执行频率String id 1111111111111;Trigger trigger TriggerBuilder.newTrigger().withIdentity(id, group1).withSchedule(cronSchedule(0/20 * * * * ?)).build();//创建任务指定任务处理逻辑JobDetail jobDetail JobBuilder.newJob().ofType(TestJob.class).withIdentity(id).build();// 任务信息 存库、存在任务则更新可以去quartz 相关表里面去看框架自动把任务信息存到表里面了//下次启动只要开启了spring.quartz.auto-startup true ,就能自动扫描quartz_表存的任务信息scheduler.scheduleJob(jobDetail, trigger);scheduler.start();}
} 配置文件 # 项目启动自动启动定时任务调度
spring.quartz.auto-startuptrue
spring.quartz.job-store-typejdbc
org.quartz.jobStore.driverDelegateClass org.quartz.impl.jdbcjobstore.StdJDBCDelegate总结
以上是Quartz框架基于springboot简单demo如果你还在springboot中使用Scheduled注解不妨试一下Quartz定时任务框架 需要demo代码的可以评论私发demo git地址