quartz2.1.7 持久化(XML)
来源:互联网 发布:vivox9l破解网络锁 编辑:程序博客网 时间:2024/05/18 00:15
import java.util.Date;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class MyJob extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext context)throws JobExecutionException {try {Thread.sleep(1001 * 60 * 2);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("MyJob: " + context.getJobDetail().getKey().toString() + new Date());}}
import java.util.Date;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class MyJob1 extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext context)throws JobExecutionException {try {Thread.sleep(1001 * 60 * 2);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("MyJob1: " + context.getJobDetail().getKey().toString() + new Date());}}
import java.util.Date;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class MyJob2 extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext context)throws JobExecutionException {try {Thread.sleep(1001 * 60 * 2);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("MyJob2: " + context.getJobDetail().getKey().toString() + new Date());}}
import java.util.Date;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class MyJob3 extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext context)throws JobExecutionException {try {Thread.sleep(1001 * 60 * 2);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("MyJob3: " + context.getJobDetail().getKey().toString() + new Date());}}
import java.util.Date;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class MyJob4 extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext context)throws JobExecutionException {try {Thread.sleep(1001 * 60 * 2);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("MyJob4: " + context.getJobDetail().getKey().toString() + new Date());}}
import java.util.Date;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class MyJob5 extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext context)throws JobExecutionException {try {Thread.sleep(1001 * 60 * 2);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("MyJob5: " + context.getJobDetail().getKey().toString() + new Date());}}
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"> <bean id="myjob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.tgb.lk.demo.quartz.MyJob" /><property name="durability" value="true" /><property name="group" value="myjob" /></bean><bean id="myjob1" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.tgb.lk.demo.quartz.MyJob1" /><property name="durability" value="true" /><property name="group" value="myjob" /></bean><bean id="myjob2" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.tgb.lk.demo.quartz.MyJob2" /><property name="durability" value="true" /><property name="group" value="myjob" /></bean><bean id="myjob3" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.tgb.lk.demo.quartz.MyJob3" /><property name="durability" value="true" /><property name="group" value="myjob" /></bean><bean id="myjob4" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.tgb.lk.demo.quartz.MyJob4" /><property name="durability" value="true" /><property name="group" value="myjob" /></bean><bean id="myjob5" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.tgb.lk.demo.quartz.MyJob5" /><property name="durability" value="true" /><property name="group" value="myjob" /></bean><bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="myjob"/><property name="cronExpression" value="0 0/2 * * * ?"/></bean><bean id="CronTriggerBean1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="myjob1"/><property name="cronExpression" value="0 0/2 * * * ?"/></bean><bean id="CronTriggerBean2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="myjob2"/><property name="cronExpression" value="0 0/2 * * * ?"/></bean><bean id="CronTriggerBean3" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="myjob3"/><property name="cronExpression" value="0 0/2 * * * ?"/></bean><bean id="CronTriggerBean4" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="myjob4"/><property name="cronExpression" value="0 0/2 * * * ?"/></bean><bean id="CronTriggerBean5" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="myjob5"/><property name="cronExpression" value="0 0/2 * * * ?"/></bean><bean id="springJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="CronTriggerBean"/><ref bean="CronTriggerBean1"/><ref bean="CronTriggerBean2"/><ref bean="CronTriggerBean3"/><ref bean="CronTriggerBean4"/><ref bean="CronTriggerBean5"/></list></property><property name="configLocation" value="classpath:quartz.properties" /> </bean></beans>
quartz.properties:
#============================================================================# Configure Main Scheduler Properties #============================================================================org.quartz.scheduler.instanceName = My_Quartzorg.quartz.scheduler.instanceId = AUTO#============================================================================# Configure ThreadPool #============================================================================org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPoolorg.quartz.threadPool.threadCount = 5org.quartz.threadPool.threadPriority = 5org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true#============================================================================# Configure JobStore single#============================================================================#RAM#org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore #这是默认的#============================================================================# Configure JobStore Cluster#============================================================================org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTXorg.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegateorg.quartz.jobStore.tablePrefix = QRTZ_#org.quartz.jobStore.misfireThreshold = 60000#org.quartz.jobStore.isClustered = true#org.quartz.jobStore.clusterCheckinInterval = 15000org.quartz.jobStore.dataSource = myDS#============================================================================# Configure dataSource #============================================================================#dataSource--myDSorg.quartz.dataSource.myDS.driver = oracle.jdbc.OracleDriverorg.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@192.168.16.54:1521:orclorg.quartz.dataSource.myDS.user = gsorg.quartz.dataSource.myDS.password = gsorg.quartz.dataSource.myDS.maxConnections = 10
web.xml:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!-- 加载Spring Framework容器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>WEB-INF/classes/applicationContext.xml</param-value> </context-param> <display-name>quartz01</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list></web-app>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>quartz01</groupId> <artifactId>quartz01</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.1.7</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.2.4.RELEASE</version></dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.2.2.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>3.2.2.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>3.2.2.RELEASE</version> </dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.2.RELEASE</version></dependency><dependency><groupId>ojdbc</groupId><artifactId>ojdbc</artifactId><version>14</version></dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-oracle</artifactId> <version>2.1.7</version></dependency> </dependencies></project>
需要的数据库表结构:
http://blog.csdn.net/lzj0470/article/details/17795991
注意:
这里有多个JOB,假设有100个JOB,每个JOB都需要花很长时间才能执行完,并且线程数只有5个,这样会出现一个问题。就是某些JOB可能很难被执行到。
总结:
基于XML的写法,看起来很不舒服,密密麻麻的,很多配置。(不知道还有其它更加简单的写法不)
0 0
- quartz2.1.7 持久化(XML)
- quartz2.1.7 持久化(XML)
- Quartz2.x学习笔记(二):存储与持久化
- Quartz2.2.1-JAVA-任务持久存储(MYSQL)
- Spring3 quartz2.2.1以数据库持久化方式执行_参考quartz原例子13
- spring学习笔记(26)spring整合Quartz2持久化稳健任务调度
- quartz2.1.7 表结构
- quartz2.1.7 表结构
- EJB 持久化XML配置
- 持久化persistence.xml配置文件
- 持久化persistence.xml配置文件
- Quartz2.2.1+Spring+MYSQL实现任务倒计时和任务持久
- Quartz2.2.1+Spring+MYSQL实现表达式任务持久
- Quartz2.x学习笔记(三):Quartz2.x整合spring
- Rtti实现对象的XML持久化
- persistence.xml持久化层 配置
- log4j.xml 日志持久化本地配置
- Hibernate使用xml配置持久化类
- Firefly官方教程之Distributed使用文档
- CSS2.0实现面包屑
- Asp.net SiteMap & Breadcrumb
- Jquery之表单过滤器之$("a b")--$("a>b")--$("a+b")--$("a~b")--(十六)
- 幻世(OurDream)2D图形引擎大更新——炫丽粒子特效强势回归!
- quartz2.1.7 持久化(XML)
- 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)
- Swing用户界面设计
- JQuery+AJAX异步刷新的一个基础应用(检验用户名是否已存在)
- C/C++ 笔试、面试题目大汇总
- Asp.net URL rooting configuration
- 【百度地图API】交你如何用百度地图搜索自己的数据!不需数据库
- gcc编译链接时头文件和库文件的搜索顺序
- sicily 后缀表达式计算