`
yanwei11911011
  • 浏览: 15835 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类

quartz调度配置

 
阅读更多
<bean id="incrementalJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" p:targetObject-ref="incrementalService" p:targetMethod="job" p:concurrent="false" /> 
      <bean id="checkImagesTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" p:jobDetail-ref="incrementalJob" p:cronExpression="0 0 22 * * ?" /> 
	  <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	  <property name="triggers">
	  <list>
	  <ref bean="checkImagesTrigger" /> 
	  </list>
	  </property>
	  <property name="schedulerContextAsMap">
	  <map>
	  <entry key="timeout" value="30" /> 
	  </map>
	  </property>
	  <property name="quartzProperties">
	  <props>
	  <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop> 
	  <prop key="org.quartz.threadPool.threadCount">10</prop> 
	  </props>
	  </property>
	  </bean>



动态修改调度时间

WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
/**
		 * 进行调度时间重算
		 */
		CronTriggerBean ct = (CronTriggerBean) webApplicationContext.getBean("myTrigger");
		CronTriggerBean ct2 = (CronTriggerBean) webApplicationContext.getBean("myStopTrigger");
		Scheduler scheduler = (Scheduler) webApplicationContext.getBean("scheduler");
		
		
			ct.setCronExpression("5 * * * * ?");
			ct2.setCronExpression("35 * * * * ?");
			scheduler.rescheduleJob(ct.getName(), ct.getGroup(), ct);
			scheduler.rescheduleJob(ct2.getName(), ct2.getGroup(), ct2);


初始化时读取其他地方的调度时间

public class MyCronTriggerBean extends CronTriggerBean {

	public void initStartCronExpression() {
		try {
			setCronExpression("15 * * * * ?");
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
	
	public void initStopCronExpression() {
		try {
			setCronExpression("15 * * * * ?");
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
	
}


修改原XML配置文件即可

<bean id="myTrigger"  class="com.siyue.gxwj.timer.MyCronTriggerBean" p:jobDetail-ref="myJob" p:cronExpression="0 * * * * ?" init-method="initStartCronExpression"  /> 


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics