项目中用到的quartz简记

来源:互联网 发布:淘宝妈妈装模特莫姐 编辑:程序博客网 时间:2024/05/16 19:05

项目开发中用到了定时任务,用的是quartz,下面是配置文件

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"xmlns:jaxrs="http://cxf.apache.org/jaxrs" 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.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"><!-- 任务调度器 --><bean id="schedulerJobFactory" autowire="no"class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref local="mdmSynchronousManagerTrigger" /><ref local="operationSynManagerTrigger" /></list></property></bean><bean id="mdmSynchronousManagerTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="cronExpression"><value> 0 0 3 * * ?</value><!--<value>0 0/30 7-23 * * ?</value>--></property><property name="jobDetail"><ref bean="mdmSynchronousManagerDetail" /></property></bean><bean id="mdmSynchronousManagerDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject"><ref bean="mdmSynchronousManagerQuartz" /></property><property name="targetMethod"><value>SynchronousInfo</value></property></bean><bean id="mdmSynchronousManagerQuartz" class="com.dne.eisai.mdmSynchronous.SynchronousManager"><property name="mdmSynchronousService" ref="mdmSynchronousService" /></bean><bean id="operationSynManagerTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"><property name="startDelay"><value>120000</value></property><property name="repeatInterval" value="120000"></property><property name="jobDetail"><ref bean="operationSynManagerDetail" /></property></bean><bean id="operationSynManagerDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject"><ref bean="operationSynManagerQuartz" /></property><property name="targetMethod"><value>SynchronousInfo</value></property></bean><bean id="operationSynManagerQuartz" class="com.dne.eisai.crmSynchronous.OperationSynManager"><property name="crmSynchronousService" ref="crmSynchronousService" /></bean></beans>

定时任务时间修改

import org.apache.commons.lang.StringUtils;import org.quartz.Scheduler;import org.quartz.SimpleTrigger;import org.springframework.scheduling.quartz.CronTriggerBean;public class RescheduleJob {private static Scheduler scheduler;/** * 重新设定任务执行时间 * */public static void reScheduleJob(int hour){   //  运行时可通过动态注入的 scheduler 得到 triggertry {SimpleTrigger  trigger = (SimpleTrigger ) scheduler.getTrigger("synchronousManagerTrigger", Scheduler.DEFAULT_GROUP);long originConExpression = trigger.getRepeatInterval();int  newOrigin = hour*60*60*1000;if(newOrigin > originConExpression){scheduler.unscheduleJob("synchronousManagerTrigger", Scheduler.DEFAULT_GROUP);trigger.setRepeatInterval(newOrigin);scheduler.scheduleJob(trigger);}} catch (Exception e) {} }/** * 重新设定任务执行时间 * */public static void reOperationScheduleJob(int minute){   //  运行时可通过动态注入的 scheduler 得到 trigger  try {SimpleTrigger  trigger = (SimpleTrigger) scheduler.getTrigger("operationSynManagerTrigger", Scheduler.DEFAULT_GROUP);long originConExpression = trigger.getRepeatInterval();int  newOrigin = minute*60*1000;if(newOrigin != originConExpression){scheduler.unscheduleJob("operationSynManagerTrigger", Scheduler.DEFAULT_GROUP);trigger.setRepeatInterval(newOrigin);scheduler.scheduleJob(trigger);} } catch (Exception e) {} }public Scheduler getScheduler() {return scheduler;}public void setScheduler(Scheduler scheduler) {RescheduleJob.scheduler = scheduler;}public static void reMdmScheduleJob(int hour){ try {// 运行时可通过动态注入的scheduler得到trigger CronTriggerBean trigger = (CronTriggerBean) scheduler.getTrigger("mdmSynchronousManagerTrigger", Scheduler.DEFAULT_GROUP); String originConExpression = trigger.getCronExpression();String  newOrigin = "0 0 "+hour+" * * ?";if(!StringUtils.equals(newOrigin, originConExpression)){scheduler.unscheduleJob("mdmSynchronousManagerTrigger", Scheduler.DEFAULT_GROUP);      trigger.setCronExpression(newOrigin);      scheduler.scheduleJob(trigger);}} catch (Exception e) {} }}





0 0
原创粉丝点击