注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

放飞自由

年轻人,如果三年的时间里,没有任何想法,他这一生,就基本这个样子,没有多大改变。

 
 
 

日志

 
 

spring 定时器的应用  

2010-07-31 11:34:23|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<bean id="UserInfoManager" class="cn.com.****.hibernate.base.manager.impl.UserInfoManagerImpl">
  <property name="transactionManager">
   <ref bean="transactionManager" />
  </property>
  <property name="DAO">
   <ref bean="UserInfoDAO" />
  </property>
 </bean>

<!-- 每天指定时间更新登录的错误数 -->
 <bean id="updateErrorDetail
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
        <property name="targetObject">     --> 'targeetObject'  固定不变
            <ref bean="UserInfoManager" /> 
        </property> 
        <property name="targetMethod">   --> 'targetMethod' 固定不变
            <value>updateUserErrorCount</value>    -- > 定时要调用的方法
        </property> 
    </bean> 
 <bean id="updateErrorTrigger
        class="org.springframework.scheduling.quartz.CronTriggerBean"> 
        <property name="jobDetail"> 
            <ref bean="updateErrorDetail"/> 
        </property> 
        <property name="cronExpression"> 
            <value>59 59 23 * * ?</value>  -- >  每天晚上23点59分59秒执行updateUserErrorCount方法
        </property> 
    </bean> 
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
        <property name="triggers"> 
            <list> 
                <ref local="updateErrorTrigger" />
            </list> 
        </property> 
    </bean>

<!-- 一个cron表达式有到少6个(也可能是7个)由空格分隔的时间元素.从左到右,这些元素的定义如下:   

      1.秒(0-59)   

      2.分钟(0-59)   

      3.小时(0-23)   

      4.月份中的是期(1-31)   

      5.月份(1-12或SUN-DEC)   

      6.星期中的日期(1-7或SUN-SAT)   

      7.年份(1970-2099)    

     例子:   

     0 0 10,14,16 * * ? 每天上午10点,下午2点和下午4点   

      0 0,15,30,45 * 1-10 * ? 每月前10天每隔15分钟   

      30 0 0 1 1 ? 2012 在2012年1月1日午夜过30秒时   

      0 0 8-5 ? * MON-FRI 每个工作日的工作时间     

      - 区间   

     * 通配符   

      ? 你不想设置那个字段   

     -->  


(二)----------------------------------

  • <bean id="buildHtml" parent="txProxyTemplate">     
  •        <property name="target">     
  •             <bean   class="com.njusc.gathd.gxh.templet.HtmlBuilder">     
  •                   <property name="gxhUserService" ref="gxhUserService"></property>     
  •             </bean>     
  •        </property>     
  •     </bean>     
  •      
  •     <bean id="methodInvokingJobDetail"     
  •         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">     
  •         <property name="targetObject">     
  •             <ref bean="buildHtml" />     
  •         </property>     
  •         <property name="targetMethod">     
  •             <value>buildSendHtml</value>     
  •         </property>     
  •     </bean>     
  •      
  •     <bean id="cronTrigger"     
  •         class="org.springframework.scheduling.quartz.CronTriggerBean">     
  •         <property name="jobDetail">     
  •             <ref bean="methodInvokingJobDetail" />     
  •         </property>     
  •         <property name="cronExpression">     
  •             <value>0 26 16 * * ?</value>     
  •         </property>     
  •     </bean>     
  •      
  •     <bean       
  •         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">     
  •         <property name="triggers">     
  •             <list>     
  •                 <ref local="cronTrigger" />     
  •             </list>     
  •         </property>     
  •     </bean>  

  • 配置说明:

    <bean id="buildHtml"  parent="txProxyTemplate">  中的buildHtml 是定时器具体操作的实现类,该类中可以实现具体要操作的方法。

    配置中的 buildSendHtml buildHtml类中的一个方法,该方法将按照指定的时间被执行。

    时间的配置如下:

                  <value>0 26 16 * * ?value> 

    时间大小由小到大排列,从秒开始,顺序为 秒,分,时,天,月,年    *为任意 ?为无限制。由此上面所配置的内容就是,在每天的16点26分启动buildSendHtml() 方法

    具体时间设定可参考

    "0/10 * * * * ?" 每10秒触发

    "0 0 12 * * ?" 每天中午12点触发
    "0 15 10 ? * *" 每天上午10:15触发
    "0 15 10 * * ?" 每天上午10:15触发
    "0 15 10 * * ? *" 每天上午10:15触发
    "0 15 10 * * ? 2005" 2005年的每天上午10:15触发
    "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
    "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
    "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
    "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
    "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
    "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
    "0 15 10 15 * ?" 每月15日上午10:15触发
    "0 15 10 L * ?" 每月最后一日的上午10:15触发
    "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
    "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
    "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

      评论这张
     
    阅读(210)| 评论(0)
    推荐 转载

    历史上的今天

    在LOFTER的更多文章

    评论

    <#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    页脚

    网易公司版权所有 ©1997-2017