spring boot集成Quartz实现定时任务
简介
Quartz是一款功能强大的任务调度器,Quartz有两个比较核心的组件:Job 和 Trigger。
Quartz的三个基本要素
- Scheduler:调度器,所有的调度都是由它来控制。
- Trigger:触发器,决定什么时候执行任务
- JobDetail & Job:JobDetail定义的是任务数据,而真正执行逻辑是在Job中。任务是有可能并发执行的,若Scheduler直接使用Job,就会存在对同一个Job实例并发访问的问题。而JobDetail & Job方式,Scheduler都会根据JobDetail创建一个新的Job实例,这样就可以规避并发访问问题
Spring Boot自带定时任务,默认是单线程
1. 使用spring boot自带定时任务无需添加相关依赖包
2. 在启动类上添加@EnableScheduling
注解
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication
@EnableScheduling
public class O2o2Application {public static void main(String[] args) {SpringApplication.run(O2o2Application.class, args);System.out.println("项目启动成功!");}
}
3. 在方法上标注@Scheduled
注解,指定该方法作为定时任务运行的方法。并通过cron属性设置cron表达式,来指定定时任务的执行时间
import com.cd.o2o2.dao.ProductSellDailyDao;
import com.cd.o2o2.service.ProductSellDailyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;import java.text.SimpleDateFormat;
import java.util.Date;@Service("productSellDailyService")
public class ProductSellDailyServiceImpl implements ProductSellDailyService {@Override@Scheduled(cron = "0/2 * * * * ?") //定时任务运行的方法public void demo1() {SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(dataFormat.format(new Date()) + " Quartz Running!");}@Override@Scheduled(cron = "0/5 * * * * ?") //定时任务运行的方法public void demo2() {SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("\n当前执行时间: " + dataFormat.format(new Date()) + "\n");}
}
spring boot集成Quartz实现定时任务相关推荐
- Spring Boot集成Quartz动态实现数据库任务
1. Quartz简介 1.1. 什么是Quartz Quartz是一个开源的任务调度框架.作用是基于定时.定期的策略来执行任务. 它是OpenSymphony开源组织在Job scheduling领 ...
- mysql的每隔1分钟定时_简单易用,spring boot集成quartz,实现分布式定时任务
什么是quartz? Quartz是一个完全由 Java 编写的开源任务调度框架. 我们经常会遇到一些问题: 想每个月27号,提醒信用卡还款: 想每隔1小时,提醒一下,累了,站起来活动一下: 想每个月 ...
- Spring Boot集成Quartz注入Spring管理的类
摘要: 在Spring Boot中使用Quartz时,在JOB中一般需要引用Spring管理的Bean,通过定义Job Factory实现自动注入. Spring有自己的Schedule定时任务,在S ...
- Spring Boot 集成 Quartz
1.美图 2.概述 在项⽬开发中,经常需要定时任务来帮助我们来做一些内容,⽐如定时派息.跑批对账.业务监控等.Spring Boot 体系中现在有两种⽅案可以选择,第⼀种是 Spring Boot 内 ...
- Spring boot 集成 Elastic-job 实现定时任务
1. 介绍 当前主流的分布式任务调度: feature quartz elastic-job xxl-job antares opencron 依赖 mysql jdk1.7+, zookeeper ...
- Spring Boot集成ShedLock分布式定时任务实例
ShedLock使用大全系列 前言 一.ShedLock是什么? 二.落地实现 1.1 引入依赖包 1.2 配置数据库连接信息 1.3 创建Mysql数据表 1.4 配置LockProvider 1. ...
- Spring Boot 集成Quartz
1:在项目的pom文件添加quartz依赖 <!-- quartz定时任务 --> <dependency><groupId>org.springframework ...
- spring boot集成quartz scheduler
工具.版本 开发工具:IntelliJ IDEA JDK:1.8 spring-boot:2.5.6(事例使用,可根据自己版本调整) maven:3.6.3 依赖jar <dependency& ...
- spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...
最新文章
- Solr 使用Facet分组过程中与分词的矛盾解决办法
- RoI Pooling 与 RoI Align 有什么区别?
- UVA11549计算器谜题
- apache 服务器概述--安装(一)
- 二倍图(精灵图的用法)
- CSS之Responsive设计和CSS3 Media Queries的结合
- java单例模式的实现方法_JAVA单例模式的几种实现方法
- cron每2天跑一次_直购直测,进口新极光每2年或34000公里才需要保养一次?
- java jni编译_从源码编译Android系统的Java类库和JNI动态库的方法
- labelme为圆环状物体打标签【tips】
- WPS制作三线表(表内横线粗细可调)
- 【Nature | EpiMap】Regulatory genomic circuitry of human disease loci by integrative epigenomics
- 概率密度函数、概率函数、概率分布函数和积分等的一些概念
- apache ii评分怎么评_APACHEII评分说明
- 【MATLAB】RGB转换为HSV三通道
- 如何修复无法打开的Excel文件,三大原因三大方法为你解决
- 2022年秋,工程伦理期末考试答案(仅供参考)
- 先行一步,7 大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了
- Qt Quick 3D学习:模型加载
- UE4-(室外光照)距离场环境光遮蔽(DFAO)