您的位置:首页 > 其它

项目经验:项目预警定时器配置要点总结

2014-07-10 08:51 519 查看
在web.xml下

<!-- context-param是配置Spring的applicationContext文件,如果不配默认位置是WEB-INF下的applicationContext.xml文件 -->

<context-param >

<param-name >contextConfigLocation </param-name >

<param-value >

classpath*:configs /applicationContext-app.xml

</param-value >

</context-param >

<listener >

<listener-class >org.springframework.web.context.ContextLoaderListener </listener-class >

</listener >

在applicationContext-app.xml 下

<!-- 启动定时器 -->

<bean class= "org.springframework.scheduling.quartz.SchedulerFactoryBean" >

<property name ="triggers">

<list >

<ref local ="projectEsWarningTrigger"/>

<ref local ="dataDelayWarningTrigger"/>

</list >

</property >

</bean >

<!-- 定义我们要运行的类,可以使用注入,定制一些参数    项目超标预警-->

<bean id ="projectEsWarning" class= "com.richway.rtmonitor.util.ProjectESWarning" >

<property name ="param" value="Spring定时器配置项目超标预警" ></property >

<property name ="yjlsxxService" ref="yjlsxxService"/>

</bean >

<!-- 定义我们要运行的类,可以使用注入,定制一些参数    数据延迟预警-->

<bean id ="dataDelayWarning" class= "com.richway.rtmonitor.util.DataDelayWarning" >

<property name ="param" value="Spring定时器配置数据延迟预警" ></property >

<property name ="yjlsxxService" ref="yjlsxxService"/>

</bean >

<!-- 引用、配置要运行的方法   项目超标预警-->

<bean id ="projectEsWarningDetail" class= "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >

<!-- 目标对象 -->

<!-- 指定任务类 -->

<property name ="targetObject">

<ref bean ="projectEsWarning"/>

</property >

<!-- 是否同时发生 -->

<property name ="concurrent" value="false"></ property>

<!-- 目标方法 -->

<property name ="targetMethod" value="run"></ property>

</bean >

<!-- 引用、配置要运行的方法   数据延迟预警-->

<bean id ="dataDelayWarningDetail" class= "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >

<!-- 目标对象 -->

<!-- 指定任务类 -->

<property name ="targetObject">

<ref bean ="dataDelayWarning"/>

</property >

<!-- 是否同时发生 -->

<property name ="concurrent" value="false"></ property>

<!-- 目标方法 -->

<property name ="targetMethod" value="run"></ property>

</bean >

<!-- 引用、定制时间间隔  项目超标预警 每隔5秒一次 -->

<bean id ="projectEsWarningTrigger" class= "org.springframework.scheduling.quartz.CronTriggerBean" >

<property name ="jobDetail">

<ref bean ="projectEsWarningDetail"/>

</property >

<property name ="cronExpression">

<value >0/5 * * * * ? </value >

</property >

</bean >

<!-- 引用、定制时间间隔  数据延迟预警 中午12点 以及 晚上12点 执行各执行一次  下面被注释掉的那一行就是凌晨0点 中午12点 各执行一次  另外一行 下午三点 每隔5分钟 执行一次 只是为了测试用-->

<bean id ="dataDelayWarningTrigger" class= "org.springframework.scheduling.quartz.CronTriggerBean" >

<property name ="jobDetail">

<ref bean ="dataDelayWarningDetail"/>

</property >

<property name ="cronExpression">

<!-- <value>0 0 0,12 * * ?</value> -->

<value >0 5,10,15,20,25,30,35,40,45,50,55 15 * * ?</value>

</property >

</bean >


 

 
在DataDelayWarning.java 下 
 

package com.richway.rtmonitor.util;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Results;

import com.richway.rtmonitor.service.ZxDYjlsxxService;

/**
* @author lej
*
* 2014-7-9上午9:58:02
*/
@ParentPackage("globestruts")
@Namespace("/rtmonitor/yjlsxx")
@Results({})
public class DataDelayWarning {

private String param;

private ZxDYjlsxxService yjlsxxService;

public void setYjlsxxService(ZxDYjlsxxService yjlsxxService) {
this.yjlsxxService = yjlsxxService;
}

public String getParam() {
return param;
}

public void setParam(String param) {
this.param = param;
}

public void run() throws Exception {
// 打印信息
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("the param is:" + param + " ! Time is "
+ format.format(new Date()));

System.out.println("数据延迟预警方法开始");
yjlsxxService.createDataDelayWarning();
}
}


 
 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: