spring 定时任务同步实现 (一)spring 定时任务同步,就是同类的任务前一个没有执行完成,即使时间到了,下一
spring 定时任务同步实现 (一)
spring 定时任务同步,就是同类的任务前一个没有执行完成,即使时间到了,下一个任务也不可以执行,只通退出。一真等到前一个任务完成以后,下个任务才可以执行。
?
?
一般用于读文件,同一时间内只能由一个线程进行操作时使用
?
实现的方式有俩种
今天先介绍第一种
?
?
package com.shengyidi.app.task;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class QuartzTestP extends QuartzJobBean {private static boolean flag = true;@Overrideprotected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {if (getFlag()) {testMethod();flag = true;} else {System.out.println(Thread.currentThread().getName() + "out");}}private void testMethod() {System.out.println("\n\n_______________" + Thread.currentThread().getName() + "_start________________________");for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread().getName() + " " + i);try {Thread.currentThread().sleep(30000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}System.out.println("\n\n_______________" + Thread.currentThread().getName() + "_end________________________");}private static boolean getFlag() {synchronized (QuartzJobBean.class) {if (flag == true) {flag = false;return true;}}return flag;}}?
?
?
?
?
xml
?
?
?
<bean id="testP"/></property><property name="cronExpression"><value>0 /1 * * * ?</value></property></bean><!-- runQuartz--><bean/><ref bean="cronReportTrigger2" />--><ref bean="test" /></list></property></bean>
?
测试结果数据
?
?
?
_______________org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1_start________________________org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1 0org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1 1org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2outorg.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1 2org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1 3org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-3outorg.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1 4_______________org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1_end_______________________________________org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4_start________________________org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4 0org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4 1org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4 2org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-5outorg.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4 3org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4 4org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-6out_______________org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4_end________________________
?
?
?
?
?
?
?
