接着上一篇继续,瞬时的服务器硬件使用数据是应用在页面展示中的。如果要做统计还需要定时执行任务获取多个时间点上的数据,以便进行进一步的分析和总结。这里用到得就是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>
相关推荐
在IT领域,尤其是在Java开发中,定时任务是一个非常常见的需求,用于执行周期性的任务,比如数据备份、报表生成、系统监控等。Spring框架提供了一系列工具来支持定时任务的实现,其中包括Spring自带的`spring-task`...
- 定时任务在软件工程中扮演着重要角色,它允许程序按照预定的时间间隔或特定时间点执行某项任务。常见的定时任务实现方式有: - Java中的`java.util.Timer`和`TimerTask`类,用于创建定时任务。 - Quartz库,一...
此外,Spring框架提供了更高级的定时任务管理,如@Scheduled注解和TaskScheduler接口,可以更方便地在Spring应用中配置定时任务。 任务预警系统通常会监控任务的状态,例如执行时间、资源消耗、错误日志等。当检测...
【Spring+Quartz定时任务最简集群版1】是一个基于Spring和Quartz的定时任务解决方案,用于在分布式环境中实现任务的自动调度。本项目作为Dubbo工程的一部分,它依赖于Dubbo的一些公共组件,同时也提供了将定时任务...
通过这样的实践,学生可以提升对微服务架构的理解,以及在实际项目中如何处理定时任务的调度和管理。 【标签】"SpringBoot java"说明项目的核心技术栈是Java和SpringBoot。Java作为广泛使用的服务器端编程语言,与...
JBPM3.2与Spring的整合主要是为了实现任务调度的功能,这在企业级应用中是非常重要的,因为它能够自动化执行定时任务,如流程启动、数据同步、报告生成等。在JBPM3.1.x版本中,通过SpringModules提供的`spring-...
Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用程序中定义定时任务。这个示例提供了在Spring框架中集成Quartz的详细步骤,适合Java工程的实现。下面将详细介绍Spring与Quartz结合使用的相关知识点...
总结起来,SpringBoot结合Quartz为开发者提供了一个强大的定时任务管理工具,允许我们在应用中灵活地定义和控制各种定时任务,且通过数据库存储任务信息,便于任务的增删改查。这极大地提升了我们对系统中定时任务的...
在Spring框架中,`springScheduled`是一个核心特性,它提供了定时任务的支持,使得开发者能够方便地在应用中安排周期性的任务执行。不适用于分布式项目的声明意味着这个定时任务系统可能不包含集群环境下的任务协调...
在Spring中,也可以使用`@Scheduled`注解配合`TaskScheduler`或`ThreadPoolTaskScheduler`来实现定时任务。 4. **文件上传下载**: 文件上传通常使用了Spring MVC的`CommonsMultipartResolver`,这是一个多部分...
"Job Plus项目是基于SpringBoot+Vue的轻量级定时任务管理系统"是一个融合了现代Web技术和后端服务架构的项目,旨在提供一个高效、易用的定时任务管理平台。SpringBoot是Spring框架的一个轻量级封装,简化了新Spring...
- [在传统Spring应用中使用spring-boot-actuator模块提供监控端点](http://blog.didispace.com/spring-boot-actuator-without-boot/) - [Spring Boot应用的后台运行配置]...
常见的调度策略有定时任务、依赖任务和事件驱动任务等。源码中可能用到的组件有调度器(Scheduler)和触发器(Trigger),例如Quartz或Spring Scheduler。 3. **任务分配模块**:根据任务的性质和资源需求,将任务...
Spring还提供了TaskScheduler接口,用于计划定期任务,这在实现定时任务和工作流调度时非常有用。 结合这三者,我们可以构建一个高效的分布式系统,其中Kestrel负责接收和管理任务请求,Spring TaskExecutor提供...
在给定的"Spring batch"事例中,我们看到的是一个基于 Maven 构建的工程,这意味着我们可以利用 Maven 的依赖管理和构建功能来简化项目的管理。 1. **Spring Batch 概述** - **核心组件**:Spring Batch 包含 Job...
4. **多种任务类型**:不仅支持简单定时任务,还支持复杂的业务逻辑任务,如Spring Bean、Java类、脚本任务等。 5. **监控与告警**:提供了可视化的任务监控界面,可实时查看任务状态,异常时发送告警通知。 6. **...
6. **集成调度**:如果需要定时执行Kettle任务,可以利用Spring Boot的定时任务特性(如`@Scheduled`注解)或集成Quartz等第三方调度库。 7. **异常处理和日志记录**:确保Kettle的错误和日志信息能够正确地被...
在传统Spring应用中使用spring-boot-actuator模块提供监控端点 Spring Boot应用的后台运行配置 Spring Boot自定义Banner Dubbo进行服务治理 chapter9-2-1:Spring Boot中使用Dubbo进行服务治理 chapter9-2-2:Spring...
在实际项目中,WebAsyncTask常用于大数据分析、远程服务调用、定时任务等场景。例如,你可以在用户提交表单后,启动一个异步任务去处理数据,然后立即返回一个确认页面,让用户看到操作已接受,而不需要等待任务完成...