spring定时任务在监控小工程中的应用

本文介绍如何使用Spring框架结合Quartz实现服务器资源的定时监控、数据分析及邮件报告发送。具体包括配置定时任务、采集服务器硬件使用数据、生成分析报告并定时通过邮件发送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接着上一篇继续,瞬时的服务器硬件使用数据是应用在页面展示中的。如果要做统计还需要定时执行任务获取多个时间点上的数据,以便进行进一步的分析和总结。这里用到得就是spring的定时任务。

需要注意的点是要带quartz-1.6.0.jar这个包。

定时任务的管理是在XML中进行的,这里独立出一个applicationContext_quartz.xml。

基本的监控要完成三项任务:

1.定时采集数据。

2.根据采集的数据进行分析得到报告。

3.把报告作为EMAIL的内容(或附件)发送给指定的人。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	    <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->  
        <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
            <property name="triggers">  
                <list>  
                    <ref bean="countInfo"/> 
                    <ref bean="createReport"/>  
                    <ref bean="sendEmail"/>  
                </list>  
            </property>  
        </bean>  


		<!-- 定时查询系统资源,并写入文件 -->
        <bean id="contInfoJobTask" class="com.xxx.monitor.task.CountServerInfoTask"></bean>  
        <bean id="contInfoJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
            <property name="targetObject">  
                <ref bean="contInfoJobTask"/>  
            </property>  
            <property name="targetMethod">  
                <value>countInfo</value>  
            </property>  
        </bean>  
        <bean id="countInfo" class="org.springframework.scheduling.quartz.CronTriggerBean">  
            <property name="jobDetail">  
                <ref bean="contInfoJob"/>  
            </property>  
            <property name="cronExpression">  
               <value>0 10 0/1 * * ?</value><!-- 0:10,1:10,2:10.... -->
            </property>  
        </bean>  
        
        <!-- 定时从文件中统计数字,生成报告 -->
        <bean id="reportJobTask" class="com.xxx.monitor.task.CreateReportTask"></bean>  
        <bean id="reportJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
            <property name="targetObject">  
                <ref bean="reportJobTask"/>  
            </property>  
            <property name="targetMethod">  
                <value>createReport</value>  
            </property>  
        </bean>  
        <bean id="createReport" class="org.springframework.scheduling.quartz.CronTriggerBean">  
            <property name="jobDetail">  
                <ref bean="reportJob"/>  
            </property>  
            <property name="cronExpression">  
                <value>0 5 0 * * ?</value> <!-- 00:05 -->
            </property>  
        </bean>  
        
        <!-- 定时发送邮件 -->
        <bean id="emailJobTask" class="com.xxx.monitor.task.SendMailTask"></bean>  
        <bean id="emailJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
            <property name="targetObject">  
                <ref bean="emailJobTask"/>  
            </property>  
            <property name="targetMethod">  
                <value>sendMail</value>  
            </property>  
        </bean>  
        <bean id="sendEmail" class="org.springframework.scheduling.quartz.CronTriggerBean">  
            <property name="jobDetail">  
                <ref bean="emailJob"/>  
            </property>  
            <property name="cronExpression">  
                 <value>0 15 0 * * ?</value> <!-- 0:15 -->
            </property>  
        </bean> 
</beans>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值