<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    Quartz 中的任務開始、暫停和繼續

    第一個TASK:
    package com.paul.springbatchtest.tasklet;

    import org.quartz.SchedulerException;

    public class TaskOne {
       
       
       
    public void execue() throws SchedulerException
       
    {
            System.out.println(
    "Hello Spring Schedule!"  + Thread.currentThread().getName());
        }


    }

    第二個TASK用來恢復第一個TASK的:
    package com.paul.springbatchtest.tasklet;

    import org.quartz.CronTrigger;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;

    public class DailyTask {
       
       
    private Scheduler scheduler;
       
    private CronTrigger taskOneCronTrigger;
       
    private JobDetail taskOneJobDetail;
       
       
    public void execue() throws SchedulerException
       
    {
            System.out.println(
    "Start taskOneCronTrigger in DailyTask " + Thread.currentThread().getName());
            scheduler.addJob(taskOneJobDetail,
    true);
            scheduler.scheduleJob(taskOneCronTrigger);
        }


       
    public Scheduler getScheduler() {
           
    return scheduler;
        }


       
    public void setScheduler(Scheduler scheduler) {
           
    this.scheduler = scheduler;
        }


       
    public CronTrigger getTaskOneCronTrigger() {
           
    return taskOneCronTrigger;
        }


       
    public void setTaskOneCronTrigger(CronTrigger taskOneCronTrigger) {
           
    this.taskOneCronTrigger = taskOneCronTrigger;
        }


       
    public JobDetail getTaskOneJobDetail() {
           
    return taskOneJobDetail;
        }


       
    public void setTaskOneJobDetail(JobDetail taskOneJobDetail) {
           
    this.taskOneJobDetail = taskOneJobDetail;
        }


    }


    第三個TASK,用來暫停第一個TASK的:
    package com.paul.springbatchtest.tasklet;

    import org.quartz.CronTrigger;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;

    public class StopTaskOne implements ApplicationContextAware {
       
       
    private ApplicationContext applicationContext;
       
       
    private Scheduler scheduler;
       
    private CronTrigger taskOneCronTrigger;
       
    private JobDetail taskOneJobDetail;
       
       
    public void execue() throws SchedulerException
       
    {
            System.out.println(
    "Stop Task One in " + Thread.currentThread().getName());
            scheduler
    = (Scheduler)this.applicationContext.getBean("scheduler");
            scheduler.unscheduleJob(taskOneCronTrigger.getName(), taskOneCronTrigger.getGroup());
        }


       
    public CronTrigger getTaskOneCronTrigger() {
           
    return taskOneCronTrigger;
        }


       
    public void setTaskOneCronTrigger(CronTrigger taskOneCronTrigger) {
           
    this.taskOneCronTrigger = taskOneCronTrigger;
        }


       
    public JobDetail getTaskOneJobDetail() {
           
    return taskOneJobDetail;
        }


       
    public void setTaskOneJobDetail(JobDetail taskOneJobDetail) {
           
    this.taskOneJobDetail = taskOneJobDetail;
        }



       
    public Scheduler getScheduler() {
           
    return scheduler;
        }


       
    public void setScheduler(Scheduler scheduler) {
           
    this.scheduler = scheduler;
        }


        @Override
       
    public void setApplicationContext(ApplicationContext applicationContext)
               
    throws BeansException {
           
    this.applicationContext = applicationContext;
        }

    }


    SPRING配置文件:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

        
    <bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
            
    <property name="corePoolSize" value="10" />
            
    <property name="maxPoolSize" value="100" />
            
    <property name="queueCapacity" value="500" />
        
    </bean>
        
        
    <bean id="taskOne" class="com.paul.springbatchtest.tasklet.TaskOne" />

        
    <bean id="taskOneJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            
    <property name="targetObject" ref="taskOne" />
            
    <property name="targetMethod" value="execue" />
            
    <property name="concurrent" value="false" />
        
    </bean>

        
    <bean id="taskOneCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
            
    <property name="jobDetail" ref="taskOneJobDetail" />
            
    <property name="cronExpression" value="0/1 * * * * ?" />
        
    </bean>
        
        
    <!-- //////////////////////// -->
        
        
    <bean id="dailyTask" class="com.paul.springbatchtest.tasklet.DailyTask"  >
            
    <property name="scheduler" ref="scheduler" />
            
    <property name="taskOneCronTrigger" ref="taskOneCronTrigger" />
            
    <property name="taskOneJobDetail" ref="taskOneJobDetail" />
        
    </bean>

        
    <bean id="dailyJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            
    <property name="targetObject" ref="dailyTask" />
            
    <property name="targetMethod" value="execue" />
            
    <property name="concurrent" value="false" />
        
    </bean>

        
    <bean id="dailyCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
            
    <property name="jobDetail" ref="dailyJobDetail" />
            
    <property name="cronExpression" value="0/15 * * * * ?" />
        
    </bean>
        
        
    <!-- //////////////////////// -->
        
        
        
    <bean id="stopTaskOne" class="com.paul.springbatchtest.tasklet.StopTaskOne" >
            
    <property name="taskOneCronTrigger" ref="taskOneCronTrigger" />
            
    <!-- <property name="scheduler" ref="scheduler" /> -->
            
    <property name="taskOneJobDetail" ref="taskOneJobDetail" />
        
    </bean>

        
    <bean id="stopTaskOneJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            
    <property name="targetObject" ref="stopTaskOne" />
            
    <property name="targetMethod" value="execue" />
            
    <property name="concurrent" value="false" />
        
    </bean>

        
    <bean id="stopTaskOneCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
            
    <property name="jobDetail" ref="stopTaskOneJobDetail" />
            
    <property name="cronExpression" value="10,25,40,55 * * * * ?" />
        
    </bean> <!-- -->

        
    <bean id="scheduler"
            class
    ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
            
    <property name="triggers">
                
    <list>
                    
    <!-- <ref bean="taskOneCronTrigger" /> -->
                    
    <ref bean="dailyCronTrigger" />
                    
    <ref bean="stopTaskOneCronTrigger"/>
                
    </list>
            
    </property>
            
    <property name="taskExecutor" ref="executor" />
        
    </bean>

    </beans>


    MAVEN的POM文件:
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
       
    <modelVersion>4.0.0</modelVersion>

       
    <groupId>com.paul</groupId>
       
    <artifactId>springbatchtest</artifactId>
       
    <version>1.0</version>
       
    <packaging>jar</packaging>

       
    <name>springbatchtest</name>
       
    <url>http://maven.apache.org</url>

       
    <properties>
           
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
           
    <spring.batch.version>
                2.1.8.RELEASE
           
    </spring.batch.version>
           
    <maven.compiler.source>1.6</maven.compiler.source>
           
    <maven.compiler.target>1.6</maven.compiler.target>
           
    <spring.version>3.0.5.RELEASE</spring.version>
       
    </properties>
       
    <dependencies>
           
    <dependency>
               
    <groupId>org.springframework.batch</groupId>
               
    <artifactId>spring-batch-core</artifactId>
               
    <version>${spring.batch.version}</version>
               
    <exclusions>
                   
    <exclusion>
                       
    <groupId>commons-logging</groupId>
                       
    <artifactId>commons-logging</artifactId>
                   
    </exclusion>
               
    </exclusions>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.springframework.batch</groupId>
               
    <artifactId>spring-batch-infrastructure</artifactId>
               
    <version>${spring.batch.version}</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.springframework.batch</groupId>
               
    <artifactId>spring-batch-test</artifactId>
               
    <version>${spring.batch.version}</version>
               
    <scope>test</scope>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.springframework</groupId>
               
    <artifactId>spring-beans</artifactId>
               
    <version>${spring.version}</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.springframework</groupId>
               
    <artifactId>spring-context</artifactId>
               
    <version>${spring.version}</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.springframework</groupId>
               
    <artifactId>spring-core</artifactId>
               
    <version>${spring.version}</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.springframework</groupId>
               
    <artifactId>spring-jdbc</artifactId>
               
    <version>${spring.version}</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.springframework</groupId>
               
    <artifactId>spring-tx</artifactId>
               
    <version>${spring.version}</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.slf4j</groupId>
               
    <artifactId>slf4j-api</artifactId>
               
    <version>1.6.1</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.slf4j</groupId>
               
    <artifactId>jcl-over-slf4j</artifactId>
               
    <version>1.6.1</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>ch.qos.logback</groupId>
               
    <artifactId>logback-classic</artifactId>
               
    <version>0.9.29</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>commons-io</groupId>
               
    <artifactId>commons-io</artifactId>
               
    <version>2.0.1</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>com.h2database</groupId>
               
    <artifactId>h2</artifactId>
               
    <version>1.3.168</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>junit</groupId>
               
    <artifactId>junit</artifactId>
               
    <version>4.8.2</version>
               
    <scope>test</scope>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.springframework</groupId>
               
    <artifactId>spring-test</artifactId>
               
    <version>${spring.version}</version>
               
    <scope>test</scope>
           
    </dependency>
           
    <dependency>
               
    <groupId>javax.mail</groupId>
               
    <artifactId>mail</artifactId>
               
    <version>1.4.1</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.springframework</groupId>
               
    <artifactId>spring-context-support</artifactId>
               
    <version>${spring.version}</version>
           
    </dependency>
           
    <!-- <dependency>
                <groupId>org.opensymphony.quartz</groupId>
                <artifactId>quartz</artifactId>
                <version>1.6.1</version>
            </dependency>
    -->
           
    <dependency>
               
    <groupId>mysql</groupId>
               
    <artifactId>mysql-connector-java</artifactId>
               
    <version>5.1.21</version>
           
    </dependency>
           
    <dependency>
               
    <groupId>org.quartz-scheduler</groupId>
               
    <artifactId>quartz</artifactId>
               
    <version>1.8.4</version>
           
    </dependency>
       
    </dependencies>
    </project>


    測試文件:
    package com.paul.springbatch.test;

    import junit.framework.Assert;

    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

    @RunWith(SpringJUnit4ClassRunner.
    class)
    @ContextConfiguration(locations
    = { "/schedule/quartz.xml"})
    public class QuartzTaskOneTest {
       

       
        @Test
       
    public void simpleTest() throws Exception{
           
           
    while(true)
           
    {
                Assert.assertTrue(
    true);
            }

        }

    }

    posted on 2012-10-13 16:18 paulwong 閱讀(3992) 評論(1)  編輯  收藏 所屬分類: SRPING BATCH

    Feedback

    # re: Quartz 中的任務開始、暫停和繼續 2014-04-14 10:45 最代碼

    可以參考下最代碼網站上的這個代碼:http://www.zuidaima.com/share/1748776162790400.htm  回復  更多評論   


    主站蜘蛛池模板: 亚洲AV无码一区二区三区鸳鸯影院| 亚洲国产精品综合一区在线| 亚洲国产精品人久久| 亚洲视频一区二区在线观看| 亚洲成人激情小说| 男女猛烈xx00免费视频试看| 精品无码一级毛片免费视频观看| 亚洲电影免费在线观看| 野花高清在线观看免费完整版中文 | 亚洲情a成黄在线观看动漫尤物| 亚洲国产成人久久综合一区| 亚洲av成人一区二区三区观看在线 | 羞羞视频免费网站含羞草| 东北美女野外bbwbbw免费| **aaaaa毛片免费同男同女| 日韩免费高清一级毛片在线| 国产亚洲午夜高清国产拍精品| 亚洲美女免费视频| 国产成人亚洲精品91专区高清 | 国产精品免费综合一区视频| 亚洲国产精品一区二区成人片国内| 亚洲成电影在线观看青青| 精品女同一区二区三区免费播放 | 亚洲第一精品福利| 亚洲6080yy久久无码产自国产 | 91香蕉在线观看免费高清| 日本二区免费一片黄2019| 亚洲va国产va天堂va久久| 亚洲女子高潮不断爆白浆| 中文在线免费观看| 成人毛片免费播放| 久久精品亚洲综合专区| 亚洲精品自偷自拍无码| 久久精品国产大片免费观看| 日韩午夜免费视频| 亚洲精品福利网站| 久久久受www免费人成| 午夜寂寞在线一级观看免费| 久久精品亚洲精品国产色婷| 免费国产黄网站在线看| 可以免费看黄的网站|