`
hypgr
  • 浏览: 273261 次
社区版块
存档分类
最新评论

spring框架使用任务调度quartz的例子-Job and Trigger 篇

阅读更多

MainJob.java

 1package jobs;
 2
 3import org.apache.log4j.Logger;
 4import org.quartz.JobExecutionContext;
 5import org.quartz.JobExecutionException;
 6import org.springframework.scheduling.quartz.QuartzJobBean;
 7
 8public class MainJob extends QuartzJobBean {
 9    private  Logger logger = Logger.getLogger(getClass());
10    @Override
11    protected void executeInternal(JobExecutionContext context)
12            throws JobExecutionException {
13        // TODO Auto-generated method stub
14        logger.debug("Just say hi.");
15    }

16
17}

18

application.xml

<?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:jee
=http://www.springframework.org/schema/jee
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd"
>
    
<!-- 任务调度对象 -->
    
<bean id="mainJob"
        class
="org.springframework.scheduling.quartz.JobDetailBean">
        
<!-- 运行的类 -->
        
<property name="jobClass">
            
<value>jobs.MainJob</value>
        
</property>
        
<!-- 需要用到的对象 -->
        
<property name="jobDataAsMap">
            
<map>
                
<entry key="data">
                    
<value>data</value>
                
</entry>
            
</map>
        
</property>
    
</bean>

    
<!-- 简单的触发器 -->
    
<bean id="mainTrigger"
        class
="org.springframework.scheduling.quartz.SimpleTriggerBean">
        
<property name="jobDetail">
            
<!-- 上面创建的任务调度对象 -->
            
<ref bean="mainJob" />
        
</property>
        
<!-- 启动60秒后执行任务调度的excute方法 -->
        
<property name="startDelay">
            
<value>6000</value>
        
</property>
        
<!-- 运行次数 -->
        
<property name="repeatCount">
            
<value>0</value>
        
</property>
        
<!-- 隔一个小时运行一次(貌似多余,不写会报错) -->
        
<property name="repeatInterval">
            
<value>3600000</value>
        
</property>
    
</bean>
    
        
    
    
<!-- 任务调度工厂类 -->
    
<bean
        
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        
<!-- 这一部分的配置不用管 -->
        
<property name="quartzProperties">
            
<props>
                
<prop key="org.quartz.threadPool.class">
                    org.quartz.simpl.SimpleThreadPool
                
</prop>
                
<prop key="org.quartz.threadPool.threadCount">10</prop>
                
<prop key="org.quartz.threadPool.threadPriority">
                    5
                
</prop>
                
<prop
                    
key="org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread">
                    true
                
</prop>

            
</props>
        
</property>
        
<!-- 触发器,可以放一大堆触发器 -->
        
<property name="triggers">
            
<list>
                
<!-- 在这里加 -->
                 
<ref bean="mainTrigger"/>
            
</list>
        
</property>

    
</bean>
</beans>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics