简述网站推广的方法,广告设计公司实践报告,wordpress网站监测,有域名怎么建网站南宁引言
Quartz Scheduler是一个功能丰富的开源作业调度库#xff0c;它允许开发人员以灵活的方式创建和管理定时任务。以下是对Quartz Scheduler的详细解析#xff1a;
官网地址#xff1a;https://www.quartz-scheduler.org/w3cschool 官方文档#xff1a;https://www.w3c…引言
Quartz Scheduler是一个功能丰富的开源作业调度库它允许开发人员以灵活的方式创建和管理定时任务。以下是对Quartz Scheduler的详细解析
官网地址https://www.quartz-scheduler.org/w3cschool 官方文档https://www.w3cschool.cn/quartz_doc/
一、核心概念
Quartz Scheduler的核心概念主要包括三个部分
Job表示被调度的任务需要实现org.quartz.Job接口中的execute方法。
void execute(JobExecutionContext context)JobDetail用于设置任务的属性如任务的名称、组名、任务类、任务数据等。Trigger表示触发器用于定义任务执行的时间规则。Quartz提供了两种主要的触发器类型SimpleTrigger和CronTrigger。SimpleTrigger用于在 特定时间后开始执行并以一定的重复间隔执行。CronTrigger则基于Cron表达式提供了更复杂的时间调度能力。Scheduler调度器是Quartz框架的心脏负责基于Trigger设定的时间来执行Job。它管理着所有的Job和Trigger确保它们能够按照预定的计划执行。 二、Springboot 集成 quartz
1. 创建一个新的 Spring Boot 项目添加 Quartz 依赖到 pom.xml 文件中 dependencies!-- 其他依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-quartz/artifactId/dependency
/dependencies2. Quartz 配置
在 Spring Boot 应用中配置 Quartz主要涉及到配置类和任务的创建。
1配置类
创建一个配置类用于配置 Quartz 的相关属性
Configuration
public class QuartzConfig {Beanpublic JobStore jobStore(DataSource dataSource) {JDBCJobStoreFactoryBean factory new JDBCJobStoreFactoryBean();factory.setDataSource(dataSource);factory.setTablePrefix(QRTZ_);return factory.getObject();}Beanpublic SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) {SchedulerFactoryBean factory new SchedulerFactoryBean();factory.setJobStore(jobStore(dataSource));// 可以设置其他属性如线程池大小等return factory;}// 省略其他配置...
}2任务和触发器
定义一个任务实现 Job 接口并创建触发器来触发任务
Component
public class MyJob implements Job {Overridepublic void execute(JobExecutionContext context) {// 任务逻辑System.out.println(执行任务 new Date());}
}创建触发器和作业详情并注册到调度器
Service
public class JobService {Autowiredprivate Scheduler scheduler;PostConstructpublic void init() throws SchedulerException {JobDetail jobDetail JobBuilder.newJob(MyJob.class).withIdentity(myJob, group1).build();Trigger trigger TriggerBuilder.newTrigger().withIdentity(myTrigger, group1).startNow().withSchedule(CronScheduleBuilder.cronSchedule(0/10 * * * * ?)) // 每10秒执行一次.build();scheduler.scheduleJob(jobDetail, trigger);}
}实战演练 启动 Spring Boot 应用 运行 Spring Boot 应用的主类应用将启动并初始化 Quartz开始执行定时任务。
验证任务执行 观察控制台输出你将看到任务按照预定的计划执行并打印出执行的时间。
参考文献
https://www.cnblogs.com/muxi0407/p/11969119.html