Quartz的简单使用:实现简单的定时任务

在 Quartz 中,你可以定义和调度多个 Job。每个 Job 都有对应的 JobDetail 和 Trigger。

1. 添加依赖

确保你的项目中包含 Quartz 的依赖。例如,如果你使用的是 Maven,可以在 pom.xml 中添加以下依赖:

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

2. 创建 Job 类

首先,编写两个实现 Job 接口的类;每个类包含要执行的任务。

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;public class JobOne implements Job {@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {System.out.println("Executing JobOne at " + System.currentTimeMillis());}
}public class JobTwo implements Job {@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {System.out.println("Executing JobTwo at " + System.currentTimeMillis());}
}

3. 配置调度器

创建一个调度器并配置两个 Job 及其各自的触发器。

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;public class QuartzScheduler {public static void main(String[] args) throws SchedulerException {// 创建调度器Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();// 定义第一个作业和触发器JobDetail jobOne = JobBuilder.newJob(JobOne.class).withIdentity("jobOne", "group1").build();Trigger triggerOne = TriggerBuilder.newTrigger().withIdentity("triggerOne", "group1").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5) // 每5秒执行一次.repeatForever()).build();// 定义第二个作业和触发器JobDetail jobTwo = JobBuilder.newJob(JobTwo.class).withIdentity("jobTwo", "group2").build();Trigger triggerTwo = TriggerBuilder.newTrigger().withIdentity("triggerTwo", "group2").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(10) // 每10秒执行一次.repeatForever()).build();// 将作业和触发器注册到调度器中scheduler.scheduleJob(jobOne, triggerOne);scheduler.scheduleJob(jobTwo, triggerTwo);// 启动调度器scheduler.start();}
}

4. 启动应用

运行 QuartzScheduler 类中的 main 方法,Quartz 将根据配置的触发器执行 JobOneJobTwo

总结

以上示例展示了如何在 Quartz 中配置和调度两个独立的 Job。关键步骤包括:

  1. 定义 Job 类:每个 Job 类实现 Job 接口并定义具体的业务逻辑。

  2. 配置调度器:为每个 Job 创建 JobDetailTrigger,然后将它们注册到调度器中。

  3. 启动调度器:调用 scheduler.start() 方法启动调度器,使其开始根据触发器的配置执行 Job。

通过这种方式,你可以轻松地管理和调度多个任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四,SSM整合-前后端分离(实现分页+前后端校验)

分页与校验 实现功能07-分页显示列表需求分析/图解思路分析代码实现完成测试 实现功能08-带条件查询分页显示列表需求分析/图解思路分析代码实现 实现功能09-添加家居表单前端校验需求分析/图解思路分析代码实现 实现功能10-添加家居表单后端校验需求分析/图解思路分析代码实现…

zdppy_amauth如何测试批量获取用户绑定的所有权限

简单的思路 1、添加用户 2、添加角色 3、绑定用户和角色的关系 4、添加3个权限 5、绑定角色和权限关系&#xff0c;给角色绑定2个权限 6、查询用户绑定的所有权限 7、删除用户 8、删除角色 9、删除权限 10、解绑用户的所有角色 11、解绑角色的所有权限 第一步&#xff1a;改造…

开源【汇总】

开源【汇总】 前言版权推荐开源【汇总】最后 前言 先占个位 2024-6-21 21:29:33 以下内容源自《【创作模板】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://jsss-1.blog.csdn.net 禁止其他平台发…

华为海思CPU解读

安全可靠CPU测评结果&#xff08;华为海思篇&#xff09; 中国信息安全测评中心于2024年5月20日发布安全可靠测评结果公告&#xff08;2024年第1号&#xff09;&#xff0c;公布依据《安全可靠测评工作指南&#xff08;试行&#xff09;》的测评结果&#xff0c;自发布起有效期…

可视化数据科学平台在信贷领域应用系列七:自动机器学习(下篇)

在当今金融科技迅速发展的时代&#xff0c;自动机器学习&#xff08;AutoML&#xff09;逐步成为了信贷风控领域的重要工具。随着大数据和人工智能技术的进步以及信贷风险环境的快速变化&#xff0c;传统人工建模模式的时效性已经难以应对复杂多变的挑战。自动机器学习框架将数…

海外版coze前端代码助手

定位 解决前端同事的开发问题 参数配置 测试 支持 最屌的大模型及语音播报。 体验地址 海外版前端代码助手 需要魔法才能体验油

【快乐星球game】

编写游戏程序代码是一个复杂的过程&#xff0c;涉及到游戏设计、编程、图形设计、音效制作等多个方面。以下是一个非常简化的示例&#xff0c;用于展示如何开始编写一个基本的游戏程序。我们将使用Python语言和一个名为Pygame的库来创建一个简单的游戏。 首先&#xff0c;确保你…

2024.6最最新版MySQL数据库安装(保姆级教程,不懂你捶我)

1.MySQL数据库下载 1.打开MySQL官网 如下页面 2.下翻网页到最底部,找到Download,点击第一个MySQL Community Server 3.选择自己需要的版本以及系统的MySQL: 4.跳转页面会有一个登录/注册页面,这里我们不鸟他,直接开始下载 2.MySQL数据库安装 1.双击我们刚刚下载的安装包 2.勾…

编码RNA Terc-53和透明质酸受体Hmmr可调节小鼠的衰老

近期&#xff0c;厦门大学王耿教授团队在Protein & Cell&#xff08;IF21.1&#xff09;上发表题为“Noncoding RNA Terc-53 and hyaluronan receptor Hmmr regulate ageing in mice.”的研究。研究团队构建了一系列Terc-53小鼠模型&#xff0c;发现Terc-53小鼠表现出与年龄…

艾尔登法环攻略教程 教你怎么达成怎么进入DLC的前置条件

《艾尔登法环》是一款黑暗幻想风开放世界角色扮演动作游戏&#xff0c;该游戏让玩家走进辽阔的场景与地下迷宫探索未知&#xff0c;挑战困难重重的险境&#xff0c;同时体验登场角色之间的利害关系谱成的群像剧。其广阔的开放世界、深邃的剧情探索、极具挑战性的战斗系统&#…

stable diffusion 模型融合

【抛砖引玉】GhostMixV2.0的制作过程及关于Checkpoint模型融合的一点经验 - 知乎大家好,我是Ghost_Shell,也是GhostMix的作者。本来想写一篇文章整体介绍一下模型,一些你们可能没察觉到,但我非常固执的理念,也算是模型的特性。结果发现写太长了,就分开两部分,第一部分是…

关于Notebook环境的安装记录

这是Windows下的&#xff0c;由于自己用的miniconda&#xff0c;所以很多都是自己手动搞的。 1. 首先执行conda install jupyter notebook&#xff0c;它能创建一个jupyter notebook的快捷方式&#xff08;当然你也可以自己创建这个快捷方式&#xff09;。 2. 但是不习惯no…

JExcel API使用笔记

JExcel API使用笔记 JExcel是一个开源的支持excel的java类库&#xff0c;广泛利用其api来生成excel报表 API基本使用 1.创建excel文件 workbook Workbook.createWorkbook(file);//传入file文件2.创建sheet页 WritableSheet sheet workbook.createSheet("记录表&quo…

【C++ | 重载运算符】一文弄懂C++运算符重载,怎样声明、定义运算符,重载为友元函数

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-21 2…

银河麒麟V10安装docker和docker-compose

1. 说明 系统镜像使用的是Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso如果是在VMware中安装这个系统&#xff0c;需选择Ubuntu&#xff0c;如果选Centos会有问题。 尝试使用在线方式安装docker&#xff0c;报了很多错误&#xff0c;比较麻烦&#xff0c;建议使用离…

slam移动机器人预测n秒后的里程数据

slam移动机器人预测n秒后的里程数据 为了实现这个功能,需要完成以下几个步骤: 订阅/odom话题并获取当前和上一时刻的里程计数据。计算两次里程计数据之间的位置和角度的偏移量。计算时间间隔dt。使用运动模型计算当前的速度vx, vy, vth。预测3秒后的位置和角度。将预测的位置…

C/C++ 简单的输入输出测试用例

在实际开发中经常会遇到简单调试接口的场景,需要从键盘输入一个字符,响应相应操作,整体逻辑就是 1.获取键盘输入 2.执行操作 3.再次等待获取键盘输入 虽然上述步骤极其容易但是总归是需要时间去拉一个demo,下面给出demo 用例,便于大家修改测试 #include <iostream>…

Flask中获取HTTPS请求的代理IP的原始IP地址

在Flask中获取HTTPS请求的代理IP的原始IP地址&#xff0c;你可以使用X-Forwarded-For HTTP头。这个头可能包含多个IP地址&#xff0c;其中第一个通常是原始的客户端IP。 以下是一个Flask示例代码&#xff0c;展示了如何获取原始的客户端IP地址&#xff1a; from flask import…

生成式AI和LLM如何应用

承认自己是普通人&#xff0c;我们只要会用就行了。 没有Machine Learning&#xff0c;也没有Deep Learning&#xff0c;让95%的普通码农都会用大模型&#xff0c;至于底层原理&#xff0c;就让那5%的精英去学吧。 这是“Generative AI with Large Language Models”课程的学…

xss初识(xss-lab)

XSS跨站脚本 XSS漏洞概述 XSS被称为跨站脚本攻击&#xff08;Cross-site scripting&#xff09;&#xff0c;由于和CSS&#xff08;Cascading Style Sheets&#xff09; 重名&#xff0c;所以改为XSS。 XSS主要基于javascript语言完成恶意的攻击行为&#xff0c;因为javascri…