zoukankan      html  css  js  c++  java
  • spring的定时调度

    项目中要用到一个报表的运算服务器,项目一运行,就会启动相关的运算方法。

    想了一圈,java web项目,spring是个万金油,什么都叫由它来管理。一查,还真有这个定时调度的功能。

    spring提供两种触发器,一个是CronTriggerBean,一个是SimpleTriggerBean。

    好懒,长话短说吧。

    环境: spring + ibatis,首先配置spring配置文件。写service层(具体的运算方法就写在这)。

    1). CronTriggerBea

               <!-- 定义job -->  

    1. <bean name="mathsJob1"  
    2.     class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
    3.     <!-- 注入的service层 -->  
    4.     <property name="targetObject" ref="mathsService" />  
    5.     <!-- 调用的方法-->  
    6.     <property name="targetMethod" value="aotoMathsMethod1" />  
    7.     <!--concurrent为true,则允许一个QuartzJob并发执行,否则就是顺序执行 -->  
    8.     <property name="concurrent" value="false" />  
    9. </bean>  
    10.   
    11. <!-- 定义CronTriggerBean触发器 -->  
    12. <bean id="mathsTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">  
    13.     <!-- 注入需要出发的job -->  
    14.     <property name="jobDetail">  
    15.         <ref bean="mathsJob1" />  
    16.     </property>  
    17.     <!-- 触发的规则,这里是 每天的凌晨1点触发 -->  
    18.     <property name="cronExpression">  
    19.         <value>0 0 1 * * ?</value>  
    20.     </property>  
    21. </bean>  

    2).SimpleTriggerBean

    1. <!-- 定义job -->  
    2.     <bean name="mathsJob2"  
    3.         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
    4.         <!-- 注入的service层 -->  
    5.         <property name="targetObject" ref="mathsService" />  
    6.         <!-- 调用的方法-->  
    7.         <property name="targetMethod" value="aotoMathsMethod2" />  
    8.         <!--concurrent为true,则允许一个QuartzJob并发执行,否则就是顺序执行 -->  
    9.         <property name="concurrent" value="false" />  
    10.     </bean>  
    11.       
    12.     <!-- 定义SimpleTriggerBean触发器 -->     
    13.     <bean id="mathsTriggerBean" class="org.springframework.scheduling.quartz.SimpleTriggerBean">        
    14.         <!-- 注入需要出发的job -->         
    15.         <property name="jobDetail">                 
    16.             <ref bean="mathsJob2" />            
    17.         </property>             
    18.         <!-- 30s后启动 -->             
    19.         <property name="startDelay" value="30000" />                
    20.         <!-- 10s检查一次 -->                
    21.         <property name="repeatInterval" value="2*60*60*1000" />     
    22.     </bean>  
  • 相关阅读:
    Gartner APM 魔力象限技术解读——全量存储? No! 按需存储?YES!
    微信不再提供小程序打开App?借助H5为App引流的方式你必须知道!
    来电科技:基于 Flink + Hologres 的实时数仓演进之路
    进击的云原生,为开发者提供更多可能性
    分久必合的Lindorm传奇
    雷锋网独家解读:阿里云原生应用的布局与策略
    「技术人生」第4篇:技术、业务、组织的一般规律及应对策略
    云上安全保护伞--SLS威胁情报集成实战
    Linux date命令实现日期查询与UTC时戳转换
    VScode调试运行cmake加入环境变量
  • 原文地址:https://www.cnblogs.com/JSWBK/p/5832217.html
Copyright © 2011-2022 走看看