subic项目总结(二)-quartz中的三种JobStore
来源:互联网 发布:php在线帮助文档系统 编辑:程序博客网 时间:2024/06/03 13:02
JobStore负责跟踪所有你给scheduler的“工作数据”:jobs, triggers, calendars, 等。
RAMJobStore
RAMJobStore 是使用最简单的也是最高效(依据CPU时间)的JobStore 。RAMJobStore 正如它名字描述的一样,它保存数据在RAM。这就是为什么它是配置最简单的也是最高效的原因。缺点是你的应用结束之后所有的数据也丢失了,这意味着RAMJobStore 不具有保持job和trigger持久的能力。对于一些程序是可以接受的,甚至是期望的,但对于其他的程序可能是灾难性的。要使用RAMJobStore你只需要在你的Quartz配置文件中添上这么一段话,如下,
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
没有其他配置了。
JDBCJobStore
JDBCJobStore,正如名字描述的一样,它以JDBC的方式保存数据在数据库中。它比RAMJobStore的配置复杂一点,也没有RAMJobStore快。然而,性能缺点不是糟透了,特别是如果你在数据库表主键上建立了索引。在机器之间的LAN(在scheduler 和数据库之间)合理的情况下,检索和更新一个被触发的Trigger花费的时间少于10毫秒。
JDBCJobStore 几乎适用于所有的数据库,广泛用于 Oracle, PostgreSQL, MySQL, MS SQLServer, HSQLDB, 和DB2。
使用JDBCJobStore之前你必须首先创建一系列Quartz要使用的表。你可以发现表创建语句在Quartz发布目录的“docs/dbTables”下面。你需要确定你的应用要使用的事务类型。
如果你不想绑定调度命令(例如增加和移除Trigger)到其他的事务,你可以使用JobStoreTX (最常用的选择)作为你的Jobstore。
如果你需要Quartz和其他的事务(例如在J2EE应用服务器中)一起工作,你应该使用JobStoreCMT ,Quartz 将让应用服务器容器管理这个事务。使用JobStoreTx配置Quartz,如下,
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate #配置表的前缀 org.quartz.jobStore.tablePrefix = QRTZ_ #使用JNDI数据源的时候,数据源的名字 org.quartz.jobStore.dataSource = myDS
TerracottaJobStore
提供了一个方法:在不使用数据库的情况下使它具有收缩性和强壮性。TerracottaJobStore 可以是集群的也可以是非集群的,在这两种情况下为你的job数据提供了一个存储机制用于应用程序重启之间持久,因为数据是存储在Terracotta服务器。它的性能比使用数据库访问JDBCJobStore好一点儿(大约是一个数量级),但是明显比RAMJobStore慢,配置如下,
org.quartz.jobStore.class = org.terracotta.quartz.TerracottaJobStore org.quartz.jobStore.tcConfigUrl = localhost:9510
- subic项目总结(二)-quartz中的三种JobStore
- subic项目总结(三)-修改quartz默认连接池
- subic项目总结(一)-quartz库表
- Quartz jobStore
- Quartz之 JobStore
- Quartz学习笔记(五)—— JobStore
- JobStore
- Quartz源码——JobStore保存JonDetail和Trigger源码分析(一)
- Quartz教程 第9课 JobStore
- Quartz项目实践总结
- Quartz.net官方开发指南 第九课: JobStore
- Quartz.net官方开发指南 第九课: JobStore
- Quartz(二) quartz测试
- Quartz学习研究(二):一个最基本的Quartz、Spring项目(附项目源代码)
- Quartz总结(三):动态修改定时器一
- Quartz总结(四):动态修改定时器二
- quartz在web项目中的应用(不使用spring)
- Webwork项目总结(三)
- 初识插件化
- OpenGL超级宝典Windows + VS2013开发环境配置
- Google分析统计
- 2.RPC框架的简单实现(定义自己的ldubbo命名空间)
- 我的博客发表练习
- subic项目总结(二)-quartz中的三种JobStore
- openssl req和x509命令及配置文件
- 1007. 素数对猜想 (20)
- 反汇编定位代码崩溃位置_4
- 解决listview中的textview设置了setMovementMethod导致onItemclick无效的问题
- OPatch failed with error code 73
- c#映射数据库中表的实体类
- hdu 4345 Permutation(dp)
- css 中 强制不换行和超出省略