java 灵活配置quartz

article/2025/10/7 16:32:07

项目背景:

最近项目上遇到个需求,需要我们在特定的事件做邮件和短信的发送。但时间并不固定,是根据用户配置的时间表来进行的定时发送任务。有点像闹钟,你设置的时间到了就响。这里我们采取的是每天凌晨定时取数据库里的时间表信息,把今天该执行的定时任务配置成quartz,到时间了就自动执行

1.添加依赖

<dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.3.0</version>
</dependency>

2.创建执行任务的任务类

package com.example.demo.job;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;import java.text.SimpleDateFormat;
import java.util.Date;public class TestJob01 implements Job {@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");System.out.println("任务打印"+sdf.format(new Date()));}
}

3.创建调用任务的调度类

package com.example.demo.job;import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;public class TestJob01Scheduler {private static JobDetail jobDetail = JobBuilder.newJob(TestJob01.class).withIdentity("testJob01", "group11").build();private static Scheduler scheduler;static {try {scheduler = new StdSchedulerFactory().getScheduler();} catch (SchedulerException e) {e.printStackTrace();}}// 执行任务public static void run(String cron) throws SchedulerException{//创建触发器Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group21").withSchedule(CronScheduleBuilder.cronSchedule(cron)).build();//将任务及其触发器放入调度器scheduler.scheduleJob(jobDetail, trigger);//调度器开始调度任务// 启动if (!scheduler.isShutdown()) {scheduler.start();}}public static void main(String[] args) throws SchedulerException {TestJob01Scheduler testJob01Scheduler = new TestJob01Scheduler();//5秒执行一次testJob01Scheduler.run("*/5 * * * * ?");try {Thread.sleep(8000);} catch (InterruptedException e) {e.printStackTrace();}//清理完scheduler里面的任务scheduler.clear();//10秒执行一次testJob01Scheduler.run("*/10 * * * * ?");}
}

4.执行效果

在这里插入图片描述
可以看到,前两个打印任务是5秒打印一次 后面重新执行后十秒打印一次


http://chatgpt.dhexx.cn/article/Wx1gudmA.shtml

相关文章

java quartz配置_java quartz简单使用

1.在项目里引入quartz org.quartz-scheduler quartz 2.3.0 2.quartz的简单实例 package com.example.quartz_demo; import org.quartz.JobDetail; import org.quartz.Scheduler; import static org.quartz.JobBuilder.newJob; import static org.quartz.TriggerBuilder.newTrig…

SpringBoot - 集成Quartz框架之常用配置(二)

文件约定 在Quartz发布的JAR包的org.quartz包下&#xff0c;包含了一个命名为quartz.properties的配置文件并提供了默认属性&#xff0c;如果需要调整默认配置&#xff0c;则可以在类路径下建立一个新的quartz.properties&#xff0c;它将自动被Quartz加载并覆盖默认值。如果使…

浅析Quartz的集群配置

1、基本信息&#xff1a; Quartz是一个开源的作业调度框架&#xff0c;它完全由java写成&#xff0c;并设计用于J2Se和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征&#xff0c;如&#xff1a;数据库支…

SpringBoot2集成Quartz配置独立数据源

需求说明 Quartz配置需要部署独立的表结构&#xff0c;但是经常存于业务表之间&#xff0c;有些时候可能需要与业务表分开配置&#xff0c;所以在此给Quartz配置独立的数据源 一.版本介绍 Springboot版本为2.1.6 多数据源配置使用druid进行配置,数据库使用的为Oracle11g,如果使…

Quartz配置和运用详解

本文转自&#xff1a;http://topmanopensource.iteye.com/blog/1123824 最近工作需要学习quartz&#xff0c;那么必须首先了解三个概念&#xff1a; 调度器&#xff1a;负责调度作业和触发器&#xff1b; 触发器&#xff1a;设置作业执行的时间、参数、条件等&#xff1b;&…

Springboot——quartz简单配置和使用

文章目录 简单maven项目配置依赖配置编写处理类编写测试类 Springboot 项目配置依赖引入编写任务具体处理类编写配置类注意事项测试 简单maven项目配置 依赖配置 springboot项目中增加如下的quartz依赖信息&#xff1a; <!-- https://mvnrepository.com/artifact/org.qua…

Quartz配置文件quartz.properties加载

Quartz配置文件quartz.properties加载 前天&#xff0c;同事来问我&#xff0c;quatz任务调度的qurtaz.properties配置文件是如何加载的&#xff0c;项目是老大写的&#xff0c;我没看过代码&#xff0c;于是去翻了一遍源码&#xff0c;终于找到了配置的加载地方&#xff0c;让…

quartz mysql 配置_Quartz配置

1. Quartz主要配置 属性名称是否必选类型默认值说明 org.quartz.scheduler.instanceName 否 String QuartzScheduler Schedule调度器的实体名字 org.quartz.scheduler.instanceId 否 String NON_CLUSTERED Schedule调度器的实体的Id,必须唯一。 1. 当你想生成intanceId的时候可…

(AnyWhere-)安卓版“捷径”

下载 久闻酷安大名&#xff0c;下了酷安App&#xff0c;真是发现了新大陆。可以的&#xff0c;看上了AnyWhere-&#xff0c;下载试试 AnyWhere-下载地址 - 酷安 使用教程 一开始看的是这篇文章入坑的 真的不用羡慕iOS&#xff01;神奇APP“AnyWhere”让安卓也能玩“捷径” …

Anywhere,一个随启随用的静态服务器

现在用webpack也很少用到这种启动服务&#xff0c;偶尔做个小demo还是可以用用 Anywhere是一个随启随用的静态服务器&#xff0c;它可以随时随地将你的当前目录变成一个静态文件服务器的根目录。 一、首先得有node 如果没有的话&#xff0c;直接去官网下载安装包或者用brew …

Anywhere 随启随用的静态文件服务器

1.Anywhere 随启随用的静态文件服务器 ----利用nodeJs anywhere搭建本地服务器环境一&#xff1a;首先去nodeJs官网下载最新版nodeJs https://nodejs.org/en/ 安装成功后winr打开cmd 输入node -help 或者node -v查看是否安装成功 二&#xff1a;装好后输入 npm install anywhe…

快速搭建本地WebServer环境--anywhere

方式1. Nodejs anywhere 命令快速搭建 (需要nodejs环境) ● 安装anywhere包 npm install -g anywhere ● 在目录地址栏输入cmd, 打开命令提示符窗口, 输入命令 anywhere -p 8000 ● 将会自动在浏览器打开, 或者手动输入 本机ip:8000 打开 方式2. 使用 PhpStudy 软件 下载链…

如何连接到Sybase SQL Anywhere数据库

Sybase SQL Anywhere数据库具有许多非常有用的功能,与竞争对手相比,它具有很高的竞争力。首先,它允许您处理大量数据。其次,它具有很高的生产率,也就是说,可以快速提供大量数据。第三,它需要最少的管理。最后,它几乎完全自动化地集成到自定义应用程序中,不需要支持。 …

使用cors-anywhere-master 解决VUE+AXIOS跨域问题

在VUE框架中&#xff0c;用AXIOS加载微信文章&#xff0c;遇到跨域问题&#xff01; 解决方案&#xff1a; 1、去GITHUB下载 cors-anywhere-master GitHub - Rob--W/cors-anywhere: CORS Anywhere is a NodeJS reverse proxy which adds CORS headers to the proxied reques…

InstallAnywhere项目,安装开发解决方案

InstallAnywhere项目,安装开发解决方案 InstallAnywhere 是面向应用程序生产商的领先安装开发解决方案。它允许您为物理、虚拟和云环境提供一致、专业的多平台安装。您可以为本地平台(Windows、Linux、Apple、Solaris、AIX、HP-UX 和 IBM)创建可靠的安装。将现有的和新的软件产…

InstallAnywhere 2020 下载安装

InstallAnywhere 2020 InstallAnywhere 2020 提供专业且可靠的多平台安装 无论使用什么平台&#xff0c;InstallAnywhere均可使开发人员轻松创建性能相同的专业安装软件。 您将能够为Windows&#xff0c;Linux&#xff0c;Apple&#xff0c;Solaris&#xff0c;AIX&#xff0c…

Automation Anywhere视频教程

Automation Anywhere视频教程12 - 如何从CSV或文本命令读取数据1 https://www.bilibili.com/video/BV1DT4y1G7aK Automation Anywhere视频教程13 - 如何使用Excel命令&#xff08;详细信息&#xff09;1 https://www.bilibili.com/video/BV1of4y1U7Mv Automation Anywhere视频…

前端anywhere——前端应用启动服务

有时候我们在js里需要使用模块化&#xff0c;将项目打包后&#xff0c;用浏览器直接打开dist文件夹下的index.html会报错。 这个时候我们就可以安装一个 nodejs 的第三方模块&#xff1a;anywhere&#xff0c;以服务器方式打开项目。 全局安装 需要提前安装 nodejs npm inst…

nodejs服务器Anywhere使用

https://www.jianshu.com/p/3f0b7ea9df53 nodejs服务器Anywhere Anywhere是一个随启随用的静态服务器&#xff0c;它可以随时随地将你的当前目录变成一个静态文件服务器的根目录。 一&#xff0c;安装node 在nodejs官网下载&#xff0c;安装后打开cmd命令行&#xff0c;输入n…

InstallAnywhere 2022

InstallAnywhere 2022 增强的获取用户输入面板 - 高级- 在获取用户输入面板中添加了“如果必填字段为空则禁用下一步按钮”复选框选项&#xff0c;以启用/禁用通知未填写的必填字段的“下一步”按钮。 选中后&#xff0c;“获取用户输入”面板中的“下一步”按钮将被禁用&#…