掌握Quartz定时任务的持久化与mysql数据库配置
需积分: 32 132 浏览量
更新于2024-12-17
1
收藏 2KB RAR 举报
资源摘要信息:"Quartz定时任务持久化数据表"
Quartz是一个完全由Java编写的开源作业调度系统,它为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz可以集成几乎任何Java应用程序 - 从小型独立应用程序到大型电子商务系统。Quartz可以被看作是一个作业调度器或者是一个企业级的任务调度器。
在Quartz中,Job(作业)是需要被调度执行的任务单元,而Trigger(触发器)则定义了任务执行的时间规则。通过组合Job和Trigger,Quartz提供了灵活多样的任务调度方式。为了实现任务调度状态的持久化,Quartz可以使用数据库来存储必要的信息,如任务的定义、执行情况以及触发器的状态等。
Quartz使用数据库存储Job和Trigger的信息,这称为“持久化”。由于Quartz支持多种数据库,因此在使用之前,需要在数据库中创建一系列数据表,这些表用于存储Quartz的运行状态。Quartz默认支持的数据库包括但不限于MySQL、PostgreSQL、Oracle、MS SQL Server等。
在MySQL数据库中,Quartz的持久化数据表通常包括以下几个核心表:
1. QRTZ`.`CALENDARS`:存储Quartz的Calendar信息,用于定义时间范围。
2. QRTZ`.`CRON_TRIGGERS`:存储CronTrigger类型的数据,CronTrigger是Quartz中使用Cron表达式进行触发的触发器。
3. QRTZ`.`CUR_JOB是一家数据库中的临时表,用于存储当前正在执行的作业。
4. QRTZ`.`JOB_DETAILS`:存储作业的详细信息,如作业实例的名称、组名、类型等。
5. QRTZ`.`JOB_LISTeners`:存储与作业实例相关的监听器信息。
6. QRTZ`.`TRIGGERS`:存储触发器的信息,包括触发器的名称、组名、类型等。
7. QRTZ`.`TRIGGER_LISTENERS`:存储与触发器相关的监听器信息。
8. QRTZ`.`SIMPLE_TRIGGERS`:存储SimpleTrigger类型的数据,SimpleTrigger允许指定开始时间、结束时间和重复次数。
9. QRTZ`.`BLOG_TRIGGERS`:存储Blob类型的数据,用于存储二进制对象。
10. QRTZ`.`TRAIGGERS`:存储触发器的状态信息。
11. QRTZ`.`锁表`:存储Quartz锁的信息,用于控制对共享资源的访问。
当需要动态配置Quartz定时任务时,用户可以通过操作这些数据表来增加、删除或修改作业和触发器。这样的设计使得Quartz具有很好的灵活性和扩展性,适合于各种复杂的调度场景。
简单的CRUD(创建Create、读取Read、更新Update、删除Delete)操作足以完成对Quartz定时任务的管理。这可以通过SQL语句或者使用JDBC直接操作数据库来实现。例如,可以使用如下SQL语句来创建一个简单的作业和触发器:
```sql
INSERT INTO QRTZ`.`JOB_DETAILS` (SCHED_NAME, JOB_NAME, JOB_GROUP, DESCRIPTION, JOB_CLASS_NAME, IS_DURABLE, IS_NONCONCURRENT, IS_UPDATE_DATA, REQUESTS_RECOVERY, JOB_DATA) VALUES ('default', 'myJob', 'default', 'My Job', 'com.example.MyJobClass', TRUE, FALSE, TRUE, FALSE, NULL);
INSERT INTO QRTZ`.`CRON_TRIGGERS` (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, JOB_NAME, JOB_GROUP, CRON_EXP, TIME_ZONE_ID, START_TIME, END_TIME, TRIGGER_STATE, TRIGGER_TYPE, PRIORITY) VALUES ('default', 'myTrigger', 'default', 'myJob', 'default', '* * * * * ?', NULL, CURRENT_TIMESTAMP, NULL, 'WAITING', 'CRON', 0);
```
上述SQL语句将在Quartz数据表中插入一条新的作业记录和一个Cron触发器记录。这将导致每分钟执行一次名为'myJob'的作业。
通过这样的操作,Quartz框架能够为应用提供强大的任务调度能力,同时保证了作业的持久化,使得即使在系统重启或者故障后,任务调度依然能够按照预期执行。这也是为什么Quartz在企业级应用中得到广泛应用的原因之一。
664 浏览量
2023-12-25 上传
2011-01-13 上传
248 浏览量
133 浏览量
583 浏览量
温柔仅属于你
- 粉丝: 7
- 资源: 2
最新资源
- salvageo-crx插件
- 空中数控移动
- 易语言专用MP3播放器
- simplelog
- 按键输入与蜂鸣器 - .zip
- libGLESv2_libglesv2_leafga7_sdhyuj_
- 易语言bass可视化效果器
- ArticutAPI:Articut的API中文断词(兼具语意词性标记):「断词」又称「分词」,是中文资讯处理的基础。Articut不用机器学习,不需资料模型,只用现代白话中文语法规则,即能达到SIGHAN 2005 F1-measure 94%以上,召回96%以上的成绩
- local
- Logene归档
- chrome谷歌浏览器驱动(100.0.4896.60)
- sweetheart.py:在Speedlight上构建包括AI在内的全栈Web应用程序
- expansion_game:用 HTML 和 JS 重新制作“生命游戏”
- 标题::beach_with_umbrella:轻松培训和部署seq2seq模型
- react-webpack-starter:使用React,Webpack和Bootstrap的入门
- proxmox-dns