代码改变世界

spring-quartz-01

2018-11-18 22:10  crow!  阅读(113)  评论(0编辑  收藏  举报
    <!-- 在spring里面进行任务的注册,明确的告诉容器,一旦执行任务之后谁来处理 -->
    <bean id="myTask" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <!-- 此为任务执行之后的任务处理执行类 默认调用 executeInternal() 方法 -->
        <property name="jobClass" value="cn.mldn.util.MyTask" />
        <property name="jobDataAsMap" >
            <map>
                <!-- 容器启动之后立即触发 -->
                <entry key="timeout" value="0" />
            </map>
        </property>
    </bean>
    <!-- 此处配置的是一个间隔触发,既然是间隔触发就必须设置要触发的任务 -->
    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="myTask" /> <!-- 一旦触发立即执行的任务 -->
        <property name="startDelay" value="0" /> <!-- 立即触发 -->
        <property name="repeatInterval"  value="2000"/> <!-- 每两秒触发一次 -->
    </bean>
    
    <!-- 设置定时触发 -->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="myTask"/>
        <property name="cronExpression" value="0 * * * * ?"/> <!-- 每分钟进行触发 -->
    </bean>
    
    <!-- 定义调度工厂,调度工厂就相当于在容器启动的时候可以 -->
    <!-- 设置间隔触发器 -->
    <bean id="fBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>  <!-- 间隔触发操作 -->
                <ref bean="cronTrigger" />
            </list>
        </property>
    </bean>

test (容器启动时调用 定时任务----需要quartz-2.2.1.jar) 

    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    }