首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

spring&quartz的项目施用总结

2012-07-24 
spring&quartz的项目应用总结一.名词简介:Quartz是一个完全由java编写的开源作业调度框架。Spring为创建Qua

spring&quartz的项目应用总结

一.名词简介:
Quartz是一个完全由java编写的开源作业调度框架。Spring为创建Quartz的Scheduler、Trigger和JobDetail提供了便利的FactoryBean类,以便能够在 Spring容器中享受注入的好处。此外Spring还提供了一些便利工具类直接将Spring中的Bean包装成合法的任务。Spring进一步降低了使用Quartz的难度,能以更具Spring风格的方式使用Quartz。概括来说它提供了两方面的支持:
1)为Quartz的重要组件类提供更具Bean风格的扩展类;
2)提供创建Scheduler的BeanFactory类,方便在Spring环境下创建对应的组件对象,并结合Spring容器生命周期进行启动和停止的动作。

二。项目实践

情景一:集群部署,持久化,动态创建schedule配置
1.spring-schedule.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean id="GMTZone" factory-method="getTimeZone">
<constructor-arg value="GMT"/>
</bean>

<!--业务job生成工厂,该工厂注入了scheduleManager -->
<bean id="pharmaskyJobFactory" style="padding: 0pt; background-color: yellow; display: inline; font-size: inherit; color: black;">PharmaskyJobFactory"/>

<!--schedule管理器,用于动态添加,修改,删除schedule -->
<bean id="scheduleManager" ref="scheduleFactoryBean"/>
</bean>

<!--持久化,集群schedule工厂配置信息,实际可以在classpath下附加quartz.properties定义这些属性值 -->
<bean id="scheduleFactoryBean" ref="dataSource"/>
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">PharmaskyClusteredScheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">25</prop>
<prop key="org.quartz.threadPool.threadPriority">5</prop>
<prop key="org.quartz.jobStore.misfireThreshold">60000</prop>
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<propkey="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
<prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
<prop key="org.quartz.jobStore.isClustered">true</prop>
<prop key="org.quartz.jobStore.clusterCheckinInterval">20000</prop>
</props>
</property>
<property name="triggers">
<list>
<ref local="orderConversionCronTrigger"/>
</list>
</property>
</bean>

<!--固定jobDetail, org.quartz.JobDetail类型的JobDetail必须实现指定接口方法来执行job-->
<bean id="autoOrderStatusConversionJob" value="PMS-SYS-JOB-HIS-ORDER-CONVERSION"/>
<property name="group" value="PMS-GROUP"/>
<property name="requestsRecovery" value="true"/>
</bean>

<!--job触发器,绑定上面的jobDetail -->
<bean id="orderConversionCronTrigger" value="PMS-SYS-JOB-HIS-ORDER-CONVERSION-Trigger"/>
<property name="jobDetail" ref="autoOrderStatusConversionJob" />
<property name="cronExpression" value="0 0/20 * * * ?" />
<property name="timeZone" ref="GMTZone"/>
</bean>
</beans>
2.ScheduleManager.java动态管理schedule工具类

spring&quartz的项目施用总结ScheduleManager.java
<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->spring&quartz的项目施用总结packagecom.infowarelab.pharmasky.service.schedule;
spring&quartz的项目施用总结
spring&quartz的项目施用总结importjava.text.ParseException;
spring&quartz的项目施用总结importjava.util.ArrayList;
spring&quartz的项目施用总结importjava.util.Date;
spring&quartz的项目施用总结importjava.util.List;
spring&quartz的项目施用总结
spring&quartz的项目施用总结importorg.apache.commons.lang.StringUtils;
spring&quartz的项目施用总结importorg.quartz.CronTrigger;
spring&quartz的项目施用总结importorg.quartz.JobDetail;
spring&quartz的项目施用总结importorg.quartz.Scheduler;
spring&quartz的项目施用总结importorg.quartz.SchedulerException;
spring&quartz的项目施用总结importorg.quartz.Trigger;
spring&quartz的项目施用总结
spring&quartz的项目施用总结importcom.infowarelab.common.log.Log;
spring&quartz的项目施用总结importcom.infowarelab.common.log.LogFactory;
spring&quartz的项目施用总结importcom.infowarelab.pharmasky.util.Config;
spring&quartz的项目施用总结
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结publicclassScheduleManagerspring&quartz的项目施用总结{
spring&quartz的项目施用总结
spring&quartz的项目施用总结privatestaticfinalLoglog=LogFactory.getLog(ScheduleManager.class);
spring&quartz的项目施用总结
spring&quartz的项目施用总结privateSchedulerscheduler;
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结publicvoidstart()throwsSchedulerExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler.isShutdown()||scheduler.isInStandbyMode())spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler.start();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结publicvoidpause()throwsSchedulerExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler.isStarted())spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler.standby();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结publicvoidstop()throwsSchedulerExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler.isStarted()||scheduler.isInStandbyMode())spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler.shutdown();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结publicListlistJobDetails()throwsSchedulerExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结ListrstList=newArrayList<JobDetail>();
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结String[]groupNames=scheduler.getJobGroupNames();
spring&quartz的项目施用总结log.info("[INFO]thegroupsincurrentscheduleris:"
spring&quartz的项目施用总结+groupNames.length);
spring&quartz的项目施用总结spring&quartz的项目施用总结for(inti=0;i<groupNames.length;i++)spring&quartz的项目施用总结{
spring&quartz的项目施用总结String[]jobNames=scheduler.getJobNames(groupNames[i]);
spring&quartz的项目施用总结spring&quartz的项目施用总结for(intj=0;j<jobNames.length;j++)spring&quartz的项目施用总结{
spring&quartz的项目施用总结JobDetailjobDetail=scheduler.getJobDetail(jobNames[j],
spring&quartz的项目施用总结groupNames[i]);
spring&quartz的项目施用总结spring&quartz的项目施用总结if(jobDetail!=null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结rstList.add(jobDetail);
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结returnrstList;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结publicJobDetailgetJobDetail(StringjobName,StringjobGroupName)
spring&quartz的项目施用总结spring&quartz的项目施用总结throwsSchedulerExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结JobDetailjob=scheduler.getJobDetail(jobName,jobGroupName);
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结if(job==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结log.info("[INFO]noneobjectrelativethejobName:"+jobName
spring&quartz的项目施用总结+"andjobGroupName:"+jobGroupName);
spring&quartz的项目施用总结}
spring&quartz的项目施用总结returnjob;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结publicList<JobDetail>getJobDetailByGroup(StringjobGroupName)
spring&quartz的项目施用总结spring&quartz的项目施用总结throwsSchedulerExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结List<JobDetail>list=newArrayList<JobDetail>();
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结String[]jobNames=scheduler.getJobNames(jobGroupName);
spring&quartz的项目施用总结
spring&quartz的项目施用总结log.debug("[DEBUG]jobNameswith/""+jobGroupName
spring&quartz的项目施用总结+"/"asgroupName:"+jobNames);
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结for(inti=0;i<jobNames.length;i++)spring&quartz的项目施用总结{
spring&quartz的项目施用总结JobDetailjobDetail=getJobDetail(jobNames[i],jobGroupName);
spring&quartz的项目施用总结spring&quartz的项目施用总结if(jobDetail!=null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结list.add(jobDetail);
spring&quartz的项目施用总结spring&quartz的项目施用总结}elsespring&quartz的项目施用总结{
spring&quartz的项目施用总结log
spring&quartz的项目施用总结.debug("[DEBUG]JobDetailwith{/""
spring&quartz的项目施用总结+jobNames[i]
spring&quartz的项目施用总结+"/",/""
spring&quartz的项目施用总结+jobGroupName
spring&quartz的项目施用总结+"/"}asthejobNameandjobGroupNamecannotbefound!");
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结returnlist;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结publicbooleanaddJobDetail(JobDetailjobDetail,StringcronExpress)
spring&quartz的项目施用总结spring&quartz的项目施用总结throwsSchedulerException,ParseExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结spring&quartz的项目施用总结if(jobDetail!=null&&cronExpress!=null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结
spring&quartz的项目施用总结Triggertrigger=newCronTrigger(jobDetail.getName(),jobDetail.getGroup(),
spring&quartz的项目施用总结jobDetail.getName(),jobDetail.getGroup(),cronExpress);
spring&quartz的项目施用总结
spring&quartz的项目施用总结DatejobDate=scheduler.scheduleJob(jobDetail,trigger);
spring&quartz的项目施用总结log
spring&quartz的项目施用总结.info("[INFO]jobDetail:"
spring&quartz的项目施用总结+jobDetail.getFullName()
spring&quartz的项目施用总结+"hasbeenaddedintothescheduler,andthefirstFiredTimeis:"
spring&quartz的项目施用总结+jobDate);
spring&quartz的项目施用总结return(jobDate==null)?false:true;
spring&quartz的项目施用总结spring&quartz的项目施用总结}elsespring&quartz的项目施用总结{
spring&quartz的项目施用总结log
spring&quartz的项目施用总结.info("[INFO]addjobDetailfailure,theparametersonjobDetailortriggerhasnullvalue!");
spring&quartz的项目施用总结}
spring&quartz的项目施用总结returnfalse;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结publicTrigger[]getJobTrigger(StringjobName,StringjobGroupName)
spring&quartz的项目施用总结spring&quartz的项目施用总结throwsSchedulerExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结returnscheduler.getTriggersOfJob(jobName,jobGroupName);
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结publicList<Trigger>listTrigger()throwsSchedulerExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结List<Trigger>triggerList=newArrayList<Trigger>();
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结String[]triggerGroupNames=scheduler.getTriggerGroupNames();
spring&quartz的项目施用总结log
spring&quartz的项目施用总结.info("[INFO]thetriggergroupsamountswhichisregistedwithinthesystemis:"
spring&quartz的项目施用总结+triggerGroupNames.length);
spring&quartz的项目施用总结spring&quartz的项目施用总结for(StringtriggerGroupName:triggerGroupNames)spring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结if(triggerGroupName!=null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结String[]triggerNames=scheduler
spring&quartz的项目施用总结.getTriggerNames(triggerGroupName);
spring&quartz的项目施用总结spring&quartz的项目施用总结for(StringtriggerName:triggerNames)spring&quartz的项目施用总结{
spring&quartz的项目施用总结Triggertrigger=scheduler.getTrigger(triggerName,
spring&quartz的项目施用总结triggerGroupName);
spring&quartz的项目施用总结if(trigger!=null
spring&quartz的项目施用总结&&scheduler.getTriggerState(triggerName,
spring&quartz的项目施用总结spring&quartz的项目施用总结triggerGroupName)==Trigger.STATE_NORMAL)spring&quartz的项目施用总结{
spring&quartz的项目施用总结triggerList.add(trigger);
spring&quartz的项目施用总结spring&quartz的项目施用总结}elsespring&quartz的项目施用总结{
spring&quartz的项目施用总结log.info("[INFO]thetrigger:"
spring&quartz的项目施用总结+((trigger==null)?trigger.getFullName()
spring&quartz的项目施用总结:"null")+",notexists"
spring&quartz的项目施用总结+"orhasthenotnormalstatus");
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结returntriggerList;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结publicbooleanreScheduleJob(StringjobName,StringjobGroupName,
spring&quartz的项目施用总结spring&quartz的项目施用总结StringcomputedStr)throwsSchedulerException,ParseExceptionspring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结if(scheduler==null)spring&quartz的项目施用总结{
spring&quartz的项目施用总结scheduler=getScheduler();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结TriggernewTrigger=newCronTrigger(jobName,jobGroupName,jobName,
spring&quartz的项目施用总结jobGroupName,computedStr);
spring&quartz的项目施用总结
spring&quartz的项目施用总结newTrigger.setJobName(jobName);
spring&quartz的项目施用总结newTrigger.setJobGroup(jobGroupName);
spring&quartz的项目施用总结
spring&quartz的项目施用总结
spring&quartz的项目施用总结DatetriggerDate=scheduler.rescheduleJob(jobName,jobGroupName,newTrigger);
spring&quartz的项目施用总结log.info("[INFO]thejob"+jobName
spring&quartz的项目施用总结+"hasbeenupdatetofiredon:"+triggerDate);
spring&quartz的项目施用总结
spring&quartz的项目施用总结return(triggerDate==null)?false:true;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结publicStringgenScheduleTimeStr(bytetype,Shortspring&quartz的项目施用总结scheduleTimeParams)spring&quartz的项目施用总结{
spring&quartz的项目施用总结Stringpattern=null;//variableforcronexpress
spring&quartz的项目施用总结spring&quartz的项目施用总结switch(type)spring&quartz的项目施用总结{
spring&quartz的项目施用总结case1:
spring&quartz的项目施用总结//autoordercreationjob,theparameterturnis:weekInterval,
spring&quartz的项目施用总结//weekday,hour,minute
spring&quartz的项目施用总结//"0minutehour?*weekDay/weekInterval"
spring&quartz的项目施用总结pattern=Config
spring&quartz的项目施用总结.getString("schedule.cron.express.his.order.creation");
spring&quartz的项目施用总结log.info("[INFO]partternforhisordercreationcronexpress:"
spring&quartz的项目施用总结+pattern);
spring&quartz的项目施用总结spring&quartz的项目施用总结for(inti=0;i<scheduleTimeParams.length;i++)spring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结switch(i)spring&quartz的项目施用总结{
spring&quartz的项目施用总结case0://minute
spring&quartz的项目施用总结pattern=StringUtils.replace(pattern,"minute",
spring&quartz的项目施用总结scheduleTimeParams[0].toString());
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case1://hour
spring&quartz的项目施用总结pattern=StringUtils.replace(pattern,"hour",
spring&quartz的项目施用总结scheduleTimeParams[1].toString());
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case2://weekDay
spring&quartz的项目施用总结pattern=StringUtils.replace(pattern,"weekDay",
spring&quartz的项目施用总结getWeekIdentify(scheduleTimeParams[2]));
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case3://weekInterval
spring&quartz的项目施用总结pattern=StringUtils.replace(pattern,"weekInterval",
spring&quartz的项目施用总结scheduleTimeParams[3].toString());
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结default:
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结
spring&quartz的项目施用总结case2:
spring&quartz的项目施用总结//hisstocksyncjob,theparameterturnis:dayInterval,hour,
spring&quartz的项目施用总结//minute
spring&quartz的项目施用总结//"0minutehour*/dayInterval*?"
spring&quartz的项目施用总结pattern=Config.getString("schedule.cron.express.his.stock.sync");
spring&quartz的项目施用总结log.info("[INFO]partternforhisordercreationcronexpress:"
spring&quartz的项目施用总结+pattern);
spring&quartz的项目施用总结spring&quartz的项目施用总结for(inti=0;i<scheduleTimeParams.length;i++)spring&quartz的项目施用总结{
spring&quartz的项目施用总结spring&quartz的项目施用总结switch(i)spring&quartz的项目施用总结{
spring&quartz的项目施用总结case0://minute
spring&quartz的项目施用总结pattern=StringUtils.replace(pattern,"minute",
spring&quartz的项目施用总结scheduleTimeParams[0].toString());
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case1://hour
spring&quartz的项目施用总结pattern=StringUtils.replace(pattern,"hour",
spring&quartz的项目施用总结scheduleTimeParams[1].toString());
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case2://dayInterval
spring&quartz的项目施用总结pattern=StringUtils.replace(pattern,"dayInterval",
spring&quartz的项目施用总结scheduleTimeParams[2].toString());
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结default:
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结
spring&quartz的项目施用总结default:
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结log.info("[INFO]schedulejobcronexpressis:"+pattern);
spring&quartz的项目施用总结return(pattern==null)?null:pattern.trim();
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结/***//*************************************************************************/
spring&quartz的项目施用总结spring&quartz的项目施用总结/***//**helpermethodorgettersandsetters**/
spring&quartz的项目施用总结spring&quartz的项目施用总结/***//*************************************************************************/
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结/***//**
spring&quartz的项目施用总结*gettheweekday'sidentifylike"SUN","MON"andsoon.Inthismethod
spring&quartz的项目施用总结*thedata"1"equals"SUN",sothe"7"equals"SAT";
spring&quartz的项目施用总结*
spring&quartz的项目施用总结*@paramshort
spring&quartz的项目施用总结*thenumericdataforweekday
spring&quartz的项目施用总结*@returnStringtheweekdayidentifywithcorrectnumericdata
spring&quartz的项目施用总结*/
spring&quartz的项目施用总结spring&quartz的项目施用总结privateStringgetWeekIdentify(shortweekDay)spring&quartz的项目施用总结{
spring&quartz的项目施用总结Stringvalue=null;
spring&quartz的项目施用总结spring&quartz的项目施用总结switch(weekDay)spring&quartz的项目施用总结{
spring&quartz的项目施用总结case1:
spring&quartz的项目施用总结value="SUN";
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case2:
spring&quartz的项目施用总结value="MON";
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case3:
spring&quartz的项目施用总结value="TUE";
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case4:
spring&quartz的项目施用总结value="WED";
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case5:
spring&quartz的项目施用总结value="THU";
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case6:
spring&quartz的项目施用总结value="FRI";
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结case7:
spring&quartz的项目施用总结value="SAT";
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结default:
spring&quartz的项目施用总结break;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结returnvalue;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结publicSchedulergetScheduler()spring&quartz的项目施用总结{
spring&quartz的项目施用总结returnscheduler;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结
spring&quartz的项目施用总结spring&quartz的项目施用总结publicvoidsetScheduler(Schedulerscheduler)spring&quartz的项目施用总结{
spring&quartz的项目施用总结this.scheduler=scheduler;
spring&quartz的项目施用总结}
spring&quartz的项目施用总结}
spring&quartz的项目施用总结

?

情景二:单机部署,固定触发规则多个schedule,不用持久化
1.spring-schedule.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<!-- Job Bean -->
<bean name="autoOrderAuditService" autowire="no">
<property name="tasks">
<list>
<ref bean="autoOrderAuditService"/>
<ref bean="sendAuditedOrderService"/>
</list>
</property>
<property name="samBaseInfoService" ref="samBaseInfoService"></property>
</bean>

<bean id="timerJobDetail" autowire="no">
<property name="targetObject" ref="timerJobManagerJob" />
<property name="targetMethod" value="jobExpires" />
</bean>

<bean id="timerCronTrigger" autowire="no">
<property name="jobDetail" ref="timerJobDetail" />
<property name="cronExpression">
<value>0 0/15 * * * ?</value>
</property>
</bean>

<bean autowire="no">
<property name="triggers">
<list>
<ref bean="timerCronTrigger" />
</list>
</property>
</bean>
</beans>

?

参考资料:
cronExpression表达式:
http://hi.baidu.com/the_space_of_programmer/blog/item/725759f78d383e27720eec80.html (cronExpression
quartz介绍:
http://hi.baidu.com/alliance_alex/blog/item/5c998d64241173f2f73654b0.html
集群及quartz配置说明:
http://hi.baidu.com/jiangyou001/blog/item/5196d990862d5789a977a4af.html
http://gocom.primeton.com/modules/newbb/forumtopic19180_9963_40.htm

热点排行