spring定时器-可以配置线程是否顺序执行

package onlyfun.caterpillar;
public class DemoJob {
private JobData jobData;

public void execute() {
  System.out.println(jobData.getData() + " is executed.");
}
public void setJobData(JobData jobData) {
  this.jobData = jobData;
}
public JobData getJobData() {
  return jobData;
}
}
<?xml version="1.0" encoding="urf-8"?>
<!doctype beans public "-//spring/dtd bean/en"
  "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="someData" class="onlyfun.caterpillar.JobData"/>
<bean id="someJob" class="onlyfun.caterpillar.DemoJob">
  <property name="jobData">
   <ref bean="someData"/>
  </property>
</bean>
<bean id="jobDetailBean" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject">
   <ref bean="someJob"/>
  </property>
  <property name="targetMethod">
   <value>execute</value>
  </property>

  <property name="concurrent" value="false" />
  <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
</bean>
<bean id="cronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail">
   <ref bean="jobDetailBean"/>
  </property>
  <property name="cronExpression">
   <value>0 30 18 * * ?</value>
  </property>
</bean>
<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
   <list>
    <ref bean="cronTriggerBean"/>
   </list>
  </property>
</bean>
</beans>
在上面的指定中,每天的18时30分都会执行指定的任务,在底层,MethodInvokingJobDetailFactoryBean会自动建立JobDetail的实例以呼叫目标物件的指定方法。

 

猜你喜欢

转载自blog.csdn.net/qq_16116549/article/details/88536342