springboot集成quartz实现任务调度
2024-09-10 21:40:13
quartz
概述
- 特点
- 强大的调度功能
- 灵活的应用方式
- 分布式和集群能力
- 用到的设计模式
- Builder 模式
- factory模式
- 组件模式
- 链式写法
- 体系结构
- 调度器
- 任务
- 触发器
- 架构图
spring boot quartz
- pom配置
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.1.3.RELEASE</version>
</dependency>
- 编写job类
package com.ltf.shop.quartzdemo;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("hello word quartz");
}
}
- 编写quartz定义类
package com.ltf.shop.quartzconfig;
import com.ltf.shop.quartzdemo.HelloJob;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
@Configuration
public class QuartzConfig {
/**
* 创建Job对象
*/
@Bean
public JobDetailFactoryBean jobDetailFactoryBean()
{
JobDetailFactoryBean factory=new JobDetailFactoryBean();
factory.setJobClass(HelloJob.class);
return factory;
}
/**
* 创建Job对象
*/
// @Bean
// public SimpleTriggerFactoryBean simpleTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean)
// {
// SimpleTriggerFactoryBean simpleTriggerFactoryBean=new SimpleTriggerFactoryBean();
// //关联JobDetail对象
// simpleTriggerFactoryBean.setJobDetail(jobDetailFactoryBean.getObject());
// //设置执行的毫秒数
// simpleTriggerFactoryBean.setRepeatInterval(3000);
// simpleTriggerFactoryBean.setRepeatCount(15);
// return simpleTriggerFactoryBean;
// }
// /**
// * 创建scheduler对象
// */
// @Bean
// public SchedulerFactoryBean schedulerFactoryBean(SimpleTriggerFactoryBean simpleTriggerFactoryBean)
// {
// SchedulerFactoryBean schedulerFactoryBean=new SchedulerFactoryBean();
// schedulerFactoryBean.setTriggers(simpleTriggerFactoryBean.getObject());
// return schedulerFactoryBean;
// }
@Bean
public CronTriggerFactoryBean cronTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean)
{
CronTriggerFactoryBean cronTriggerFactoryBean=new CronTriggerFactoryBean();
cronTriggerFactoryBean.setJobDetail(jobDetailFactoryBean.getObject());
cronTriggerFactoryBean.setCronExpression("0/2 * * * * ?");
return cronTriggerFactoryBean;
}
@Bean
public SchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean)
{
SchedulerFactoryBean schedulerFactoryBean=new SchedulerFactoryBean();
schedulerFactoryBean.setTriggers(cronTriggerFactoryBean.getObject());
return schedulerFactoryBean;
}
}
最新文章
- 基于 HTML5 的 Web SCADA 报表
- 20. Valid Parentheses
- ACM/ICPC 之 数论-费马大定理(HNUOJ 13371)
- xscript脚本
- IO 流 定义
- URAL(timus) 1272 Non-Yekaterinburg Subway(最小生成树)
- iptable原理
- python 调用mysql存储过程返回结果集
- JZ2440开发笔记(8)——FCLK、HCLK和PCLK
- 实现方法 C# button快捷键
- hdu 4869 Task(馋)
- Android SQLite 加密模块实现入门
- java继承与覆写小练习
- 排序算法入门之希尔排序(java实现)
- Centos 6.9 安装xtrabackup-2.4.8 通用包,yum安装,全量备份,增量备份
- HttpClient 302重定向
- mssql sqlserver 下文分享一种新颖的字符串截取方法
- dubbo负载均衡策略和集群容错策略都有哪些
- Decision Trees:机器学习根据大量数据,已知年龄、收入、是否上海人、私家车价格的人,预测Ta是否有真实购买上海黄浦区楼房的能力—Jason niu
- CSS 小技巧
热门文章
- MFC_对话框_访问控件_7种方法_A
- WebGPU学习(十):介绍“GPU实现粒子效果”
- python内置模块(python标准库)
- 【E20200101-1】Centos 7.x 关闭防火墙(firewall)和SELinux
- flask迁移数据库时报错:Target database is not up的解决方案
- 浅谈 OpenGL 中相关阻塞问题
- git简单使用指南
- 性能数据的准备-Jmeter
- 微信公众号 唤醒手机导航APP 一看就懂 复制即用
- 天梯 L2 紧急救援 (dijkstra变形+记录路径)