zoukankan      html  css  js  c++  java
  • 如何在spring中运行多个schedulers quartz 实例

    http://wzping.iteye.com/blog/468263

    1、定义一个JOB 
    <!-- 使用pojo来做job,指定pojo和method --> 
        <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
            <property name="targetObject" ref="pojoObject"/> 
            <property name="targetMethod" value="execute"/> 
        </bean> 

    2、定义一个触发时间 
        <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
            <property name="jobDetail" ref="jobDetail"/> 
            <!--朝九晚五工作时间内每半小时执行一次--> 
            <property name="cronExpression" value="0 0/30 9-17 *,* * ?"/> 
        </bean> 

    3、定义管理器 
        <bean name="quartzScheduler" 
              class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
            <property name="triggers"> 
                <list> 
                    <ref bean="cronTrigger"/> 
                </list> 
            </property> 
        </bean> 

    一般的应用,只要配置上面这些东东就可以了。 

    但如果有大量的定时执行程序,而且有时需要分别启动,这个时候就要用到两个Scheduler, 在spring中是怎么实现的呢?简单地配置两个SchedulerFactoryBean是不解决问题的。原因如下: 

    看一下SchedulerFactoryBean的代码,里面一个参数叫做:schedulerName,SchedulerFactoryBean通过 StdSchedulerFactory返回一个具体的Scheduler的。而且每个Scheduler是注册在 SchedulerRepository中的。 
    SchedulerRepository中的每个Scheduler都是放在一个MAP中的,根据名字作为KEY。 

    private HashMap schedulers; 

    这样就比较好办了。 
        <bean name="quartzScheduler" 
              class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
            <property name="triggers"> 
                <list> 
                    <ref bean="cronTrigger"/> 
                </list> 
            </property> 
            <property name="schedulerName"><value>first</value></property> 
        </bean> 
    可以声明多个。并设上不同名字,这样scheduler就分有多个实例,可以分别启动、停止了。

  • 相关阅读:
    GridView加ObjectDataSource做删除事件(ObjectDataSourceStatusEventHandler 委托)
    非常酷的三级下拉菜单!!(javascript)
    sql事务处理(转)
    首页头部下拉广告设计(javascript)
    JavaScript 强行弹出窗口 与 无提示关闭页面
    androd之绘制文本(FontMetrics)[转]
    Android 字 成 圆
    python写的二分插入算法
    Loading效果 UIActivityIndicatorView
    ios6.0 调用系统api 分享到 twitter facebook weibo
  • 原文地址:https://www.cnblogs.com/exmyth/p/6897832.html
Copyright © 2011-2022 走看看