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

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

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

    posts - 40,  comments - 187,  trackbacks - 0

    書接上回,上回說到,我們已經(jīng)將頁面的時(shí)間設(shè)置轉(zhuǎn)為了Cron Expression,下面我記錄了時(shí)間規(guī)則。

    3) 記錄時(shí)間規(guī)則

          我將時(shí)間規(guī)則存入數(shù)據(jù)庫中,目的是為了生成歷史日志,也可以存入XML文件中。當(dāng)然您也可以省略此步,直接將轉(zhuǎn)換后的規(guī)則放入相應(yīng)的Quartz trigger中。


    4) 更新任務(wù)觸發(fā)器的時(shí)間設(shè)置

    到了關(guān)鍵的一步了,也是最簡單的一步,一個(gè)方法就可以實(shí)現(xiàn)了。

    首先,我們需要通過trigger的名稱得到一個(gè)CronTriggerBean;

    其次,通過trigger的setCronExpression(String cronExp)方法將新的表達(dá)式注入;

    最后,RESCHEDULE THE JOB,OK!

     1     /**
     2      * 自定義定時(shí)器調(diào)度時(shí)間
     3      *  @param
     triggerName 觸發(fā)器名稱
     4       *  @throws
     Exception 
     5       */

     6      public   void  updateNotificationInterval(String triggerName, String triggerId)
     7              throws  SchedulerException, ParseException 
    {
     8          // 得到trigger

     9         CronTriggerBean trigger  =  (CronTriggerBean) scheduler.getTrigger(
    10
                    triggerName, Scheduler.DEFAULT_GROUP);
    11          // 得到cron expression        

    12         String cronExpression  =  schedulerDAO.getCronExpression(triggerId);
    13          // 設(shè)置trigger的時(shí)間規(guī)則

    14         trigger.setCronExpression(cronExpression);
    15          // 重置job

    16         scheduler.rescheduleJob(triggerName, Scheduler.DEFAULT_GROUP, trigger);
    17     }

    18

    至此,目的達(dá)到了,快樂的看著您的任務(wù)在您自定義的時(shí)間下快樂的執(zhí)行,您是否也想像'Happy Feet'中那只快樂的企鵝一樣,Show段踢踏呢 ; - D


    PS:忘了說我的Quartz任務(wù)是怎么配置的了,罪過,罪過。

    < bean  id ="compareJob"
            class
    ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
            
    < property  name ="targetObject"  ref ="compareService"   />
            
    < property  name ="targetMethod"  value ="compare"   />
            
    < property  name ="concurrent"  value ="false"   />
        
    </ bean >  

        
    < bean  id ="compareTrigger"

            class
    ="org.springframework.scheduling.quartz.CronTriggerBean" >
            
    < property  name ="jobDetail"  ref ="compareJob"   />
            
    < property  name ="cronExpression" >             
                
    < value > 0 39 16 20 * ? </ value >
            
    </ property >
        
    </ bean >

    < bean  id ="schedulerFactory"
            class
    ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
            
    < property  name ="triggers" >
                
    < list >                     
                         < ref  local ="compareTrigger"   />

                
    </ list >
            
    </ property >
        
    </ bean >


                                                                                        THE END

    posted on 2007-01-10 16:55 小立飛刀 閱讀(20703) 評(píng)論(22)  編輯  收藏 所屬分類: Spring

    FeedBack:
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-01-10 17:14 | zip
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-01-10 17:55 | ajax java group
    感覺有點(diǎn)像 crontab .....  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-01-11 10:19 | 小雪飛刀
    其實(shí)Quartz的Cron Expression就是來自Unix中,所以感覺很像crontab命令  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-01-11 18:25 | yy77
    上面這個(gè)updateNotificationInterval究竟寫在哪個(gè)類里面呢?這個(gè)類要在xml里面怎么配置才能夠得到scheduler的對(duì)象呢?
    看最后聲明的那部分沒有這個(gè)類的部分啊。難道是直接通過context來獲得么?  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-01-15 10:59 | 小雪飛刀
    to yy77

    updateNotificationInterval() 這個(gè)方法可以寫在你的業(yè)務(wù)邏輯類中,scheduler對(duì)象在這個(gè)類中注入就可以用了。如:
    public class SchedulerService {

    private Scheduler scheduler;

    /**
    * @param scheduler The scheduler to set.
    */
    public void setScheduler(Scheduler scheduler) {
    this.scheduler = scheduler;
    }

    public void updateNotificationInterval(...) {
    //...
    scheduler.rescheduleJob(...);
    //...
    }
    }
    在Spring中的配置如下:
    <bean id="schedulerServiceTarget" class="SchedulerService">
    <property name="scheduler" ref="schedulerFactory" />
    </bean>
    而schedulerFactory這個(gè)bean我在文章中寫到了
    < bean id ="schedulerFactory"
    class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
    < property name ="triggers" >
    < list >
    < ref local ="compareTrigger" />
    </ list >
    </ property >
    </ bean >

    不知道這樣能不能回答你的問題呢,yy77 ?;-)

      回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)[未登錄]
    2007-02-12 16:48 | Spring
    我想請(qǐng)問一下:我都配置好了,程序到了制定的時(shí)間會(huì)進(jìn)入方法A,我想在進(jìn)入方法A后,就取得< value > 0 39 16 20 * ? </ value >這個(gè)值,應(yīng)該怎么實(shí)現(xiàn)呢?謝謝
      回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-02-12 17:00 | 小雪飛刀
    @Spring
    我理解您的意思是:
    您的Method A中需要用到這個(gè)時(shí)間,但是不知道從哪里取到。

    我的解決方法是將所有的時(shí)間規(guī)則放入數(shù)據(jù)庫中,然后從數(shù)據(jù)庫中讀取最近插入的一個(gè)值就是所需時(shí)間了。

    不知道這樣能不能回答你的問題。  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)[未登錄]
    2007-02-13 09:36 | Spring
    感謝您的回答,可能我沒表達(dá)清楚我的意思!我現(xiàn)在的時(shí)間是在數(shù)據(jù)庫中,就用您的方法假設(shè),我要定時(shí)觸發(fā)這個(gè)方法< property name ="targetMethod" value ="compare" /> ,但是這個(gè)方法會(huì)在不同的時(shí)間點(diǎn)多次觸發(fā),比如每月最后1天,每個(gè)星期第一天都是觸發(fā)這個(gè)方法!我這里可以配置多個(gè)時(shí)間么?< property name ="cronExpression" >
    < value > 0 39 16 20 * ? </ value >
    </ property > 然后把這個(gè)時(shí)間值放進(jìn)數(shù)據(jù)庫查詢!謝謝
      回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)[未登錄]
    2007-02-13 15:16 | 過客
    如果找不到調(diào)用的方法一般是什么錯(cuò)誤?類的名字,方法名在多次查證都是正確的  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-02-13 15:32 | 小雪飛刀
    @過客
    能否把你的配置文件貼出來看看?  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-02-13 15:34 | 小雪飛刀
    @Spring
    我查閱了Quartz的文檔,沒有找到可以為一個(gè)Job配置多個(gè)value elements的方法,所以有個(gè)比較笨的方法是設(shè)置多個(gè)Job,讓它們指向同一個(gè)Method,按照不同的時(shí)間執(zhí)行。
      回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-05-22 16:14 | jinhaha
    請(qǐng)問我要是調(diào)用多個(gè)方法怎么辦?  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-05-22 17:29 | 小雪飛刀
    @jinhaha

    理論上時(shí)可以的。你可以通過加載mutiple propertys達(dá)到調(diào)用多個(gè)方法的目的。如:
    <property name="targetMethod">
    <list>
    <value>register</value>
    <value>compare</value>
    </list>
    </property>

    不過我沒有實(shí)際實(shí)驗(yàn)過,您可以實(shí)驗(yàn)一下,告訴我結(jié)果 :)
      回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-08-10 12:14 | boddi
    thrank you!
      是這樣的,客戶有個(gè)需求是可以自己修改任務(wù)的間隔時(shí)間的!(這個(gè)值是設(shè)置到數(shù)據(jù)庫中的),因?yàn)镾impleTriggerBean必須設(shè)置repeatInterval屬性,而這個(gè)值因?yàn)槭潜4嬖跀?shù)據(jù)中的,所以我想設(shè)置兩個(gè)定時(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是動(dòng)態(tài)設(shè)置間隔時(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;
        }


    }
      但是不知為和兩個(gè)任務(wù)都不執(zhí)行?
    后面我再在程序啟動(dòng)時(shí)就通過ScheduleInfoAction的factoryBean
    設(shè)置CMSTransformCRMTrigger其repeatInterval屬性,只保留一個(gè)定時(shí)任務(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>
    但總感覺到有點(diǎn)笨拙,你幫忙參考下   回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-08-10 14:32 | 小雪飛刀
    @boddi
    首先Scheduler是接口不是類,其次FactoryBean that sets up a Quartz Scheduler, manages its lifecycle as part of the Spring application context, and exposes the Scheduler reference for dependency injection.

    您下面這個(gè)配置我不太明白是什么意思?能否把整個(gè)配置文件貼出來?
      回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-08-11 14:56 | boddi

    thrank you!
      是這樣的,客戶有個(gè)需求是可以自己修改任務(wù)的間隔時(shí)間的!(這個(gè)值是設(shè)置到數(shù)據(jù)庫中的),因?yàn)镾impleTriggerBean必須設(shè)置repeatInterval屬性,而這個(gè)值因?yàn)槭潜4嬖跀?shù)據(jù)中的,所以我想設(shè)置兩個(gè)定時(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是動(dòng)態(tài)設(shè)置間隔時(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;
        }


    }

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

    后面我再在程序啟動(dòng)時(shí)就通過ScheduleInfoAction的factoryBean

    設(shè)置CMSTransformCRMTrigger其repeatInterval屬性,只保留一個(gè)定時(shí)任務(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>


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

      回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2007-08-22 11:36 | kk
    問一下:
    Qest1:rescheduleJob是不是在兩種場景下使用,一是服務(wù)重啟時(shí),一是用戶需要更改任務(wù)的時(shí)間規(guī)則(觸發(fā)器)時(shí)?

    Qest2:用戶在更改任務(wù)的時(shí)間規(guī)則(觸發(fā)器)時(shí),可能還需要任務(wù)已經(jīng)運(yùn)行的狀態(tài)信息。
    場景一:某個(gè)任務(wù)從2007/1/1日開始,每天8:30運(yùn)行。到了2007/5/1日,用戶想更改為每天9:00運(yùn)行,新觸發(fā)器設(shè)為2007/1/1,9:00。希望的更新觸發(fā)器后第一次運(yùn)行時(shí)間是2007/5/2日 9:00。請(qǐng)問quartz可以做到嗎?
    場景二:某任務(wù)的執(zhí)行次數(shù)為100次,當(dāng)執(zhí)行到30次時(shí),用戶希望把執(zhí)行次數(shù)改為150次,新觸發(fā)器設(shè)為150次,所以任務(wù)還需執(zhí)行150-(100-30)=80次。請(qǐng)問quartz可以做到嗎?  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2008-10-28 15:28 | 風(fēng)續(xù)飄
    你好,我是剛剛搞開發(fā)不久,想學(xué)習(xí)quartz,你的這個(gè)程序的時(shí)間是從數(shù)據(jù)庫里來讀取的嗎?能不能把你的表結(jié)構(gòu)發(fā)我看看,感激不盡!  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2008-10-30 13:17 | 小立飛刀
    @風(fēng)續(xù)飄

    表結(jié)構(gòu)很簡單,只需要key,value兩個(gè)字段就可以滿足要求。您也可以采用其他存儲(chǔ)方式,如存入xml中。  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2009-04-23 18:18 | sunday
    @kk
    你好,我也碰到了你所說的第一種情況,不知您是怎么解決的?  回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)
    2009-04-28 13:33 | 小立飛刀
    @sunday
    什么情況 能否說得詳細(xì)些?
      回復(fù)  更多評(píng)論
      
    # re: Spring Quartz如何動(dòng)態(tài)配置時(shí)間(3)[未登錄]
    2009-07-27 16:37 | jim
    這位大哥,請(qǐng)問你的問題解決了嗎,我現(xiàn)在遇到同樣的需求,請(qǐng)問如何實(shí)現(xiàn)  回復(fù)  更多評(píng)論
      
    <2009年4月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    生存或毀滅,這是個(gè)必答之問題:是否應(yīng)默默的忍受坎苛命運(yùn)之無情打擊,還是應(yīng)與深如大海之無涯苦難奮然為敵,并將其克服。此二抉擇,究竟是哪個(gè)較崇高?

    常用鏈接

    留言簿(12)

    隨筆分類(43)

    相冊

    收藏夾(7)

    朋友的博客

    電子資料

    搜索

    •  

    積分與排名

    • 積分 - 302675
    • 排名 - 192

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲国产天堂久久综合| 国产成人在线观看免费网站| 黄网站色视频免费在线观看的a站最新| 乱爱性全过程免费视频| 国产V片在线播放免费无码| 一区二区三区四区免费视频 | 曰批全过程免费视频在线观看| 成人免费在线观看网站| 亚洲黄片毛片在线观看| AAAAA级少妇高潮大片免费看| 最新欧洲大片免费在线| 亚洲av永久无码精品三区在线4| 免费无码国产在线观国内自拍中文字幕 | 全免费一级午夜毛片| 亚洲色中文字幕无码AV| 亚洲AV无码乱码麻豆精品国产| 久久这里只有精品国产免费10| 久久99国产亚洲精品观看| 久久亚洲国产最新网站| 国产真人无码作爱视频免费| 亚洲卡一卡2卡三卡4卡无卡三 | 香蕉视频亚洲一级| 8090在线观看免费观看| 国产乱子伦片免费观看中字| 亚洲精品中文字幕麻豆| 三年片在线观看免费观看大全一| 免费国产黄线在线观看| 国产精品久久久久久亚洲小说 | 18禁超污无遮挡无码免费网站国产| 亚洲AV无码国产一区二区三区| 2021在线永久免费视频| 亚洲中文字幕不卡无码| 美女的胸又黄又www网站免费| 成人免费淫片在线费观看| 五月天婷婷免费视频| 亚洲小视频在线播放| 24小时日本电影免费看| 在线亚洲v日韩v| 亚洲系列中文字幕| 亚洲精品国精品久久99热 | 国产国产人免费视频成69大陆|