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

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

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

    一輩子的程序員?

    愛你一生不變-芳芳!
    posts - 27, comments - 15, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    我的評論

    re: 給我離開的勇氣!!! boddi 2008-10-07 17:18  
    是的,謝謝

    thrank you!
      是這樣的,客戶有個需求是可以自己修改任務(wù)的間隔時間的!(這個值是設(shè)置到數(shù)據(jù)庫中的),因為SimpleTriggerBean必須設(shè)置repeatInterval屬性,而這個值因為是保存在數(shù)據(jù)中的,所以我想設(shè)置兩個定時任務(wù)CMSTransformCRMTrigger和ScheduleInfoActionTrigger,ScheduleInfoActionTrigger在CMSTransformCRMTrigger任務(wù)執(zhí)行前觸發(fā):其目的是為CMSTransformCRMTrigger根據(jù)數(shù)據(jù)庫的值設(shè)置其repeatInterval屬性,配置文件如下:

        <bean id="CMSTransformCRMEngine" class="org.springframework.aop.framework.ProxyFactoryBean">
            
    <property name="targetSource">
                
    <bean class="org.springframework.aop.target.SingletonTargetSource">
                    
    <constructor-arg>
                        
    <bean class="com.server.business.cms.CMSTransformCRMEngine"/>
                    
    </constructor-arg>
                
    </bean>
            
    </property>
            
    <property name="interceptorNames">
                
    <list>
                    
    <value>CallContextInterceptor</value>
                
    </list>
            
    </property>
        
    </bean>

     
    <bean id="CMSTransformCRMJob" class="org.springframework.scheduling.quartz.JobDetailBean">         
            
    <property name="jobClass">
                
    <value>com.wisecrm.server.business.cms.CMSTransformCRMScheduledTask</value>
            
    </property>    
            
    <property name="jobDataAsMap">
                
    <map>
                    
    <entry key="cmsTranCRMEnginer">
                        
    <ref bean="CMSTransformCRMEngine"></ref>
                    
    </entry>
                
    </map>
            
    </property>
        
    </bean>
        
         
    <bean id="CMSTransformCRMTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">         
            
    <property name="jobDetail">
                
    <ref bean="CMSTransformCRMJob"></ref>
            
    </property>    
            
    <property name="startDelay">
                
    <value>90000</value>
            
    </property>
            
    <property name="repeatInterval">
                
    <value>90000</value>
            
    </property>
        
    </bean>
        
        
    <bean id="ScheduleInfoAction" class="com.wisecrm.server.business.cms.ScheduleInfoAction">         
            
    <property name="dataSource" ref="DataSource"/>     
            
    <property name="scheduler" ref="schedulerFactory"/>     
        
    </bean>
        
        
    <bean id="ScheduleInfoActionFactory" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            
    <property name="targetObject" ref="ScheduleInfoAction"/>
            
    <property name="targetMethod">
                 
    <value>setTaskTimeByPreference</value>
            
    </property>
            
    <!--property name="arguments">
                <list>
                    <ref local="DataSource"/>
                    <ref local="schedulerFactory"/>
                </list>
            </property
    -->
            
    <property name="concurrent" value="false"/>
        
    </bean>
        
        
    <bean id="ScheduleInfoActionTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">         
            
    <property name="jobDetail">
                
    <ref bean="ScheduleInfoActionFactory"></ref>
            
    </property>    
            
    <property name="startDelay">
                
    <value>80000</value>
            
    </property>
            
    <property name="repeatInterval">
                
    <value>50000</value>
            
    </property>
        
    </bean>
        
        
    <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">         
            
    <property name="triggers">             
                
    <list>                 
                    
    <ref local="CMSTransformCRMTrigger"/>             
                    
    <ref local="ScheduleInfoActionTrigger"/>             
                
    </list>         
            
    </property>
        
    </bean>


    ScheduleInfoAction是動態(tài)設(shè)置間隔時間的接口:

    public class ScheduleInfoAction {

        
    private Scheduler scheduler;

        
    public void setTaskTimeByPreference() throws SchedulerException 
    {
            
    if (isStartCMSTransformCRMTask()) 
    {
                SimpleTriggerBean trigger 
    = (SimpleTriggerBean) scheduler.getTrigger("ScheduleInfoActionTrigger
    ",
                                Scheduler.DEFAULT_GROUP);
                trigger.setRepeatInterval(Long.parseLong(Application.getSystemSettingService().getPrefValue(
    "CMSPeriod
    ")));
                scheduler.rescheduleJob(
    "ScheduleInfoActionTrigger
    ",
                        Scheduler.DEFAULT_GROUP, trigger);
            }
     
    else {
                scheduler.shutdown();
            }

        }


        public
     boolean isStartCMSTransformCRMTask() {
            
    return Application.getSystemSettingService().getPrefValue("CMSPeriod"!= null
    ;
        }


        public
     Scheduler getScheduler() {
            
    return scheduler;
        }


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


    }

      但是不知為和兩個任務(wù)都不執(zhí)行?

    后面我再在程序啟動時就通過ScheduleInfoAction的factoryBean

    設(shè)置CMSTransformCRMTrigger其repeatInterval屬性,只保留一個定時任務(wù)就可以了,

    配置如下:


    <bean id="ScheduleInfoAction" class="com.wisecrm.server.business.cms.ScheduleInfoAction">         
            
    <property name="scheduler" ref="schedulerFactory"/>     
        
    </bean>
        
        
    <bean id="ScheduleInfoActionFactory" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            
    <property name="targetObject" ref="CMSTransformCRMEngine"/>
            
    <property name="targetMethod">
                 
    <value>run</value>
            
    </property>
            
    <property name="concurrent" value="false"/>
        
    </bean>
        
        
    <bean id="ScheduleInfoActionTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">         
            
    <property name="jobDetail">
                
    <ref bean="ScheduleInfoActionFactory"></ref>
            
    </property>    
            
    <property name="startDelay">
                
    <value>80000</value>
            
    </property>
            
    <property name="repeatInterval">
                
    <value>80000</value>
            
    </property>
        
    </bean>
        
        
    <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">         
            
    <property name="triggers">             
                
    <list>            
                    
    <ref bean="ScheduleInfoActionTrigger"/>             
                
    </list>         
            
    </property>
        
    </bean>


    但總感覺到有點笨拙,你幫忙參考下,為什么repeatInterval不能通過繼承SimpleTriggerBean復(fù)寫getRepeatInterval方法去設(shè)置呢?

    thrank you!
      是這樣的,客戶有個需求是可以自己修改任務(wù)的間隔時間的!(這個值是設(shè)置到數(shù)據(jù)庫中的),因為SimpleTriggerBean必須設(shè)置repeatInterval屬性,而這個值因為是保存在數(shù)據(jù)中的,所以我想設(shè)置兩個定時任務(wù)CMSTransformCRMTrigger和ScheduleInfoActionTrigger,ScheduleInfoActionTrigger在CMSTransformCRMTrigger任務(wù)執(zhí)行前觸發(fā):其目的是為CMSTransformCRMTrigger根據(jù)數(shù)據(jù)庫的值設(shè)置其repeatInterval屬性,配置文件如下:
        <bean id="CMSTransformCRMEngine" class="org.springframework.aop.framework.ProxyFactoryBean">
            
    <property name="targetSource">
                
    <bean class="org.springframework.aop.target.SingletonTargetSource">
                    
    <constructor-arg>
                        
    <bean class="com.server.business.cms.CMSTransformCRMEngine"/>
                    
    </constructor-arg>
                
    </bean>
            
    </property>
            
    <property name="interceptorNames">
                
    <list>
                    
    <value>CallContextInterceptor</value>
                
    </list>
            
    </property>
        
    </bean>

     
    <bean id="CMSTransformCRMJob" class="org.springframework.scheduling.quartz.JobDetailBean">         
            
    <property name="jobClass">
                
    <value>com.wisecrm.server.business.cms.CMSTransformCRMScheduledTask</value>
            
    </property>    
            
    <property name="jobDataAsMap">
                
    <map>
                    
    <entry key="cmsTranCRMEnginer">
                        
    <ref bean="CMSTransformCRMEngine"></ref>
                    
    </entry>
                
    </map>
            
    </property>
        
    </bean>
        
         
    <bean id="CMSTransformCRMTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">         
            
    <property name="jobDetail">
                
    <ref bean="CMSTransformCRMJob"></ref>
            
    </property>    
            
    <property name="startDelay">
                
    <value>90000</value>
            
    </property>
            
    <property name="repeatInterval">
                
    <value>90000</value>
            
    </property>
        
    </bean>
        
        
    <bean id="ScheduleInfoAction" class="com.wisecrm.server.business.cms.ScheduleInfoAction">         
            
    <property name="dataSource" ref="DataSource"/>     
            
    <property name="scheduler" ref="schedulerFactory"/>     
        
    </bean>
        
        
    <bean id="ScheduleInfoActionFactory" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            
    <property name="targetObject" ref="ScheduleInfoAction"/>
            
    <property name="targetMethod">
                 
    <value>setTaskTimeByPreference</value>
            
    </property>
            
    <!--property name="arguments">
                <list>
                    <ref local="DataSource"/>
                    <ref local="schedulerFactory"/>
                </list>
            </property
    -->
            
    <property name="concurrent" value="false"/>
        
    </bean>
        
        
    <bean id="ScheduleInfoActionTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">         
            
    <property name="jobDetail">
                
    <ref bean="ScheduleInfoActionFactory"></ref>
            
    </property>    
            
    <property name="startDelay">
                
    <value>80000</value>
            
    </property>
            
    <property name="repeatInterval">
                
    <value>50000</value>
            
    </property>
        
    </bean>
        
        
    <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">         
            
    <property name="triggers">             
                
    <list>                 
                    
    <ref local="CMSTransformCRMTrigger"/>             
                    
    <ref local="ScheduleInfoActionTrigger"/>             
                
    </list>         
            
    </property>
        
    </bean>

    ScheduleInfoAction是動態(tài)設(shè)置間隔時間的接口:
    public class ScheduleInfoAction {

        
    private Scheduler scheduler;

        
    public void setTaskTimeByPreference() throws SchedulerException {
            
    if (isStartCMSTransformCRMTask()) {
                SimpleTriggerBean trigger 
    = (SimpleTriggerBean) scheduler.getTrigger("ScheduleInfoActionTrigger",
                                Scheduler.DEFAULT_GROUP);
                trigger.setRepeatInterval(Long.parseLong(Application.getSystemSettingService().getPrefValue(
    "CMSPeriod")));
                scheduler.rescheduleJob(
    "ScheduleInfoActionTrigger",
                        Scheduler.DEFAULT_GROUP, trigger);
            }
     
    else {
                scheduler.shutdown();
            }

        }


        public
     boolean isStartCMSTransformCRMTask() {
            
    return Application.getSystemSettingService().getPrefValue("CMSPeriod"!= null;
        }


        public
     Scheduler getScheduler() {
            
    return scheduler;
        }


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


    }
      但是不知為和兩個任務(wù)都不執(zhí)行?
    后面我再在程序啟動時就通過ScheduleInfoAction的factoryBean
    設(shè)置CMSTransformCRMTrigger其repeatInterval屬性,只保留一個定時任務(wù)就可以了,
    配置如下:
    <bean id="ScheduleInfoAction" class="com.wisecrm.server.business.cms.ScheduleInfoAction">         
            
    <property name="scheduler" ref="schedulerFactory"/>     
        
    </bean>
        
        
    <bean id="ScheduleInfoActionFactory" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            
    <property name="targetObject" ref="CMSTransformCRMEngine"/>
            
    <property name="targetMethod">
                 
    <value>run</value>
            
    </property>
            
    <property name="concurrent" value="false"/>
        
    </bean>
        
        
    <bean id="ScheduleInfoActionTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">         
            
    <property name="jobDetail">
                
    <ref bean="ScheduleInfoActionFactory"></ref>
            
    </property>    
            
    <property name="startDelay">
                
    <value>80000</value>
            
    </property>
            
    <property name="repeatInterval">
                
    <value>80000</value>
            
    </property>
        
    </bean>
        
        
    <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">         
            
    <property name="triggers">             
                
    <list>            
                    
    <ref bean="ScheduleInfoActionTrigger"/>             
                
    </list>         
            
    </property>
        
    </bean>
    但總感覺到有點笨拙,你幫忙參考下
    re: javaexcelapplication boddi 2007-06-07 15:35  
    其實excel的sheet不可以一個都沒有的
    導(dǎo)出excel如何進行?謝謝
    SELECT wjbh,wjmc FROM (SELECT row_.*, rownum rownum_ FROM (select wjbh,wjmc,rownum rn from y_wjlx) row_ WHERE rownum <= #end#) WHERE rownum_ > #start#
    在SQLSERVER中無法實現(xiàn)啊!請問SQLSERVER有何高招嗎?謝謝
    SELECT wjbh,wjmc FROM (SELECT row_.*, rownum rownum_ FROM (select wjbh,wjmc,rownum rn from y_wjlx) row_ WHERE rownum <= #end#) WHERE rownum_ > #start#
    中的select wjbh,wjmc,rownum rn from y_wjlx不會造成很大的效率問題嗎?
    主站蜘蛛池模板: 亚洲男人都懂得羞羞网站| 亚洲午夜福利AV一区二区无码| 国产真实伦在线视频免费观看| 四虎永久在线精品免费影视 | 亚洲成A人片在线观看中文| 亚洲精品无码激情AV| 亚洲AV无码一区二区三区系列| 亚洲大香人伊一本线| 亚洲AV日韩AV永久无码色欲| 国产精品玖玖美女张开腿让男人桶爽免费看 | 一级毛片在线播放免费| 日本高清免费观看| 97免费人妻无码视频| 日本中文一区二区三区亚洲| 亚洲国产第一页www| 亚洲高清有码中文字| 一级人做人a爰免费视频| 一级毛片免费观看不卡视频| 成人免费视频小说| 亚洲色成人网站WWW永久| 亚洲日产2021三区在线| 深夜a级毛片免费无码| 伊人久久免费视频| 日本19禁啪啪无遮挡免费动图| 亚洲色精品88色婷婷七月丁香| 亚洲一区动漫卡通在线播放| 一级毛片不卡免费看老司机| 国产精品成人观看视频免费| 亚洲国产精品一区二区九九| 亚洲资源在线视频| 全部在线播放免费毛片| 最近免费中文字幕大全高清大全1| 暖暖免费高清日本中文| 久久久综合亚洲色一区二区三区| 亚洲JIZZJIZZ妇女| 色欲色香天天天综合网站免费| 国产精品免费电影| 亚洲男人天堂影院| 国产精品免费久久久久久久久| 无限动漫网在线观看免费| 精品国产_亚洲人成在线高清|