spring 异常捕获异常_跟踪异常–第5部分–使用Spring进行计划

spring 异常捕获异常

屏幕快照2014-04-21 at 12.12.34 看来我终于快要结束本系列有关使用Spring进行错误跟踪的博客了,对于那些还没有阅读该系列博客的人,我正在编写一个简单但几乎具有工业实力的Spring应用程序,扫描日志文件中的异常,然后生成报告。 在本系列的第一个博客中,这些是我的最初要求:

  1. 搜索给定目录及其子目录(可能)以查找特定类型的文件。
  2. 如果找到文件,则检查其日期:是否需要搜索文件以查找错误?
  3. 如果文件足够年轻以至于无法检查,则对其进行验证,以查找异常。
  4. 如果它包含例外,是我们正在寻找的例外还是被排除在外?
  5. 如果它包含我们所需要的例外类型,则将详细信息添加到报告中。
  6. 检查完所有文件后,格式化报告以准备发布。
  7. 使用电子邮件或其他技术发布报告。
  8. 整个过程每天都会在给定的时间运行

该博客介绍了满足要求8的情况: “整个事情每天都会在给定的时间运行” ,这意味着实施某种调度。

现在,Java已经存在了很长时间,这意味着有许多调度任务的方法。 这些范围包括:

  • 使用一个简单的线程并长时间sleep(...)
  • 使用TimerTimerTask对象。
  • 使用ScheduledExecutorService
  • 使用Spring的TaskExecutorTaskScheduler类。
  • 使用Spring的@EnableScheduling@Scheduled注释(从Spring 3.1开始)。
  • 使用更专业的时间表。

调度程序的专业性更强,从Quartz (免费)到Obsidian (似乎更高级,但要花钱)。 如您所料,Spring包含了Quartz Scheduler支持。 实际上,有两种方法可以将Quartz Scheduler集成到您的Spring应用程序中,它们是:

  1. 使用JobDetailBean
  2. 使用MethodInvokingJobDetailFactoryBean

对于此应用程序,我将使用Spring的Quartz集成以及MethodInvokingJobDetailFactoryBean ; 原因是使用Quartz允许我使用cron表达式配置日程表,而MethodInvokingJobDetailFactoryBean可以快速,简单地使用几行XML进行配置。

Spring和Quartz使用的cron表示技术是从Unix的cron调度程序中毫不客气地采用的 。 有关Quartz如何处理cron表达式的更多信息,请查看Quartz cron页面 。 如果您在创建自己的cron表达式时需要帮助,那么您会发现Cron Maker是一个非常有用的实用程序。

设置Spring和Quartz时,要做的第一件事是将以下依赖项包含到POM项目文件中:

<!-- QuartzJobBean is in spring-context-support.jar --><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${org.springframework-version}</version><exclusions><!-- Exclude Commons Logging in favour of SLF4j --><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><!-- Spring + Quartz need transactions --><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${org.springframework-version}</version></dependency><!-- Quartz framework --><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>1.8.6</version><!-- You can't use Quartz two with Spring 3 --></dependency>

这很简单,最后只有一个很小的“ Gotcha” 。 首先,Spring的Quartz支持位于spring-context-support-3.2.7.RELEASE.jar (如果适用,请替换您的Spring版本号)。 其次,您还需要包括Spring事务库– spring-td-3.2.7.RELEASE.jar 。 最后,您需要包括一个Quartz调度程序版本; 但是,请小心,因为Spring 3.x和Quartz 2.x不能“开箱即用”地协同工作(尽管如果您四处看看,则可以找到临时修复程序)。 我使用的是Quartz 1.8.6版,它确实可以满足我的需要。

下一步要做的是整理XML配置,这涉及三个步骤:

  1. 创建一个MethodInvokingJobDetailFactoryBean的实例。 它具有两个属性:您要在预定的时间间隔调用的bean的名称,以及您要调用的bean上的方法的名称。
  2. 使用CronTriggerFactoryBeanMethodInvokingJobDetailFactoryBean耦合到cron表达式
  3. 最后,使用SchedulerFactoryBean调度整个caboodle

配置了这三个bean之后,您将获得一些类似于以下内容的XML:

<bean id="FileLocatorJob"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject" ref="errorTrackService" /><property name="targetMethod" value="trackErrors" /></bean><bean id="FileLocatorTrigger"class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="FileLocatorJob" /><!-- run every morning at 2 AM --><property name="cronExpression" value="${cron.expression}" /></bean><bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="FileLocatorTrigger" /><!-- Add other triggers for other jobs (if any) here <ref bean="" /> --></list></property></bean>

请注意,我在cron表达式中使用了占位符。 实际的cron表达式可以在app.properties文件中找到:

# run every morning at 2 AM 
cron.expression=0 0 2 * * ?# Use this to test the app (every minute) 
#cron.expression=0 0/1 * * * ?

在这里,我有两种表达方式:一种将工作安排在每天凌晨2点运行,另一种被注释掉,每分钟运行一次。 这是该应用程序不完全具有工业实力的一个实例。 如果有一个“合适的”应用程序,那么我可能会在每个环境(DEV,UAT和生产等)中使用一组不同的属性。

释放此应用程序仅需几个步骤,而第一个步骤是创建可执行的JAR文件。 下次再说。

  • 该博客的代码可在Github上找到: https : //github.com/roghughe/captaindebug/tree/master/error-track 。 如果您想查看本系列中的其他博客,请在这里看……
  1. 使用Spring跟踪应用程序异常
  2. 使用Spring跟踪异常–第2部分–委托模式
  3. 错误跟踪报告–第3部分–策略和软件包私有
  4. 跟踪异常–第4部分– Spring的邮件发件人

翻译自: https://www.javacodegeeks.com/2014/04/tracking-exceptions-part-5-scheduling-with-spring.html

spring 异常捕获异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/342477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亿佰特串口服务器接入阿里云MQTT协议的软件配置教程

在之前的文章中我们了解到虚拟串口软件作为TCP客户端来结合串口服务器使用&#xff0c;这一期我们来看一下串口服务器怎样接入阿里云物模型。 步骤详尽&#xff0c;一文读懂。 1.阿里云MQTT环境配置 ③点击“创建产品”&#xff0c;配置产品名称&#xff0c;选择“自定义品类…

三种安防监控摄像机供电方式,如何合理选择?

目前&#xff0c;监控摄像机的供电方式主要有以下三种&#xff1a;独立供电模式、集中供电模式、POE供电模式&#xff0c;其中POE供电模式又分为四种情况。那么&#xff0c;你对安防监控摄像机的这三种供电方式是否有所了解呢&#xff1f;接下来就由飞畅科技的小编来为大家详细…

串口服务器NB114产品MQTT协议软件配置教程

串口服务器&#xff08;NB114&#xff09;配置 串口服务器连接MQTT服务器方法参考“串口服务器用户手册”&#xff0c;不再重复说明。 3.设备驱动添加与处理 本次例程需要使用到TPC的两路串口以及两种收发协议&#xff0c;详细说明如下&#xff1a; ①在MCGS官网下载“MCGS_…

使用Spring Boot和Kubernetes构建微服务架构

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 在本教程中&#xff0c;您将使用Kubernetes将Spring Boot微服务架构部署到Google Clo…

物联网串口服务器的功能和作用

一、串口服务器是什么&#xff1f; 串口服务器提供串口转网络功能&#xff0c;能够将RS-232/485/422串口转换成TCP/IP网络接口,实现RS-232/485/422串口与TCP/IP网络接口的数据双向透明传输。使得串口设备能够立即具备TCP/IP网络接口功能,连接网络进行数据通信,极大的扩展串口设…

[渝粤教育] 三峡大学 电力电子技术(Ⅱ) 参考 资料

教育 -电力电子技术&#xff08;Ⅱ&#xff09;-章节资料考试资料-三峡大学【】 第一章 单元测试 1、【单选题】整流是以下哪两种电能形式之间的转换&#xff1f; A、AC-AC B、AC-DC C、DC-AC D、DC-DC 参考资料【 】 2、【单选题】充电宝在给手机锂电池充电的时候采用了以下哪…

为什么说无线数传电台和增益天线是相辅相成关系?

最近我司数传电台客户在使用超宽频&#xff08;410-493MHz&#xff09;25W数传电台和433MHz天线的过程中遇到模块失配天线的问题&#xff0c;下面我们不妨再来聊聊这个话题。 问题&#xff1a;客户在使用这个数传电台的时候&#xff0c;配备某些天线的时候不能够正常工作&#…

什么是安防工业交换机,其光口、电口,如何实现电、光转化

对于从事安防传输设备行业的朋友们来说&#xff0c;相信大家对安防工业交换机应该都不陌生吧。我们深知安防工程要的不仅是交换机产品&#xff0c;更需要的是匹配应用需求特点的高性价比。而客户在购买工业交换机时&#xff0c;很多客户都会要几光几电的交换机&#xff0c;那么…

[渝粤教育] 三峡大学 自动控制理论 参考 资料

教育 -自动控制理论-章节资料考试资料-三峡大学【】 第1周作业 第一章综合测验 1、【单选题】通过测量输出量&#xff0c;产生一个与输出信号存在确定函数比例关系值的元件称为( ) A、比较元件 B、给定元件 C、反馈元件 D、放大元件 参考资料【 】 2、【单选题】如果被调量随着…

433M数传电台窄带无线通讯技术手册

一、模块介绍 1.1特点介绍 E3A-DTU-500 是 一款 频率 433M 无 线数传电 台 &#xff08; 同时 具有RS232/RS485 接口&#xff09;&#xff0c;透明传输方式&#xff0c;工作在 425~450.5MHz 频段&#xff08;默认433MHz&#xff09;&#xff0c;工作电压范围 8V~28V。 模块具有…

飞畅科技告诉你什么是集成串口服务器POE交换机?

飞畅科技FCM系列工业POE交换机&#xff0c;提供7个百兆自适应RJ45端口3个千兆SFP上联光口插槽1路RS-485数据端口1路RS232数据端口&#xff0c;其中1-7口支持IEEE 802.3af/at标准PoE供电&#xff0c;单端口PoE功率达30W&#xff0c;整机最大PoE输出功率为240W。该系列产品是针对…

[渝粤教育] 三江学院 数字电子技术 参考 资料

教育 -数字电子技术-章节资料考试资料-三江学院【】 第一章作业 第一章测验 1、【单选题】在二进制计数系统中&#xff0c;每个变量的取值为&#xff08;&#xff09;。 A、0和1 B、0~7 C、0~9 D、0~F 参考资料【 】 2、【单选题】二进制数的权值为&#xff08;&#xff09;。 …

E820-DTU模拟量无线数传电台:物联网工业现场无线数传应用

为帮助用户在使用本公司产品时&#xff0c;能轻松快速的了解产品的使用方法&#xff0c;故写下E820-DTU工业现场无线变送应用手册&#xff0c;在此&#xff0c;读者需要了解本应用手册所针对的设备型号为我公司的E820-DTU(2I2-433L)&#xff0c;以下均简称为E820&#xff0c;或…

【lora模块技术无线数传电台】E90-DTU产品高防护等级的体现

E90-DTU-SL系列采用最新一代军工级LoRa调制技术&#xff0c;在原来的基础上距离更远&#xff0c;功耗更低&#xff0c;无疑为物联网的建设注入了新的力量&#xff0c;而亿佰特在E90-DTU-SL系列的基础又加上了P&#xff1b;引起了大家的注意&#xff0c;那么P到底是什么意思呢&a…

[渝粤教育] 上海交通大学 流体力学 参考 资料

教育 -流体力学-章节资料考试资料-上海交通大学【】 单元作业 单元测验 1、【单选题】一个物体微元的变形大小与所受切应力相关&#xff0c;这个物体可以是&#xff1a; A、刚体 B、弹性体 C、流体 D、无 参考资料【 】 2、【单选题】一个物体微元的变形速度大小与所受切应力成…

为什么5G物联网无线通信数传设备必须进行OTA更新

成都亿佰特电子科技有限公司一家集研发、生产、销售一体&#xff0c;具备完整产业链的高新技术企业。产品涵盖LoRa、WiFi、蓝牙、ZigBee、4G/5G/NB/DTU/GPRS无线模块及无线感知设备、数传电台、工业路由器、串口服务器等通信设备。公司拥有数百项发明和实用新型专利&#xff0c…

LoRa无线通信模块在运动安全上的物联网运用

5月22日中午1点左右&#xff0c;第四届黄河石林山地马拉松百公里越野赛的高海拔赛段突遇极端天气&#xff0c;多名参赛人员出现身体不适、失温等情况&#xff0c;据统计已有21人不幸遇难&#xff0c;其中超半数为马拉松顶尖高手。相比于城市马拉松&#xff0c;山地越野马拉松具…

亿佰特WiFi无线通信模块在物联网智慧农场应用案例

随着传感器、无线数传设备、应用方案的不断发展和成熟&#xff0c;也在不断推动着工业应用、智慧家居、智慧安防、智慧交通、智慧环保、智慧农业的发展&#xff1b;智慧农业也是近年来发展非常好的方向&#xff0c;尤其温室大棚等越来越智能化、现代化&#xff1b;我们某客户就…

【lora无线数传通信模块】亿佰特E22串口模块用于物联网地震预警传感通信方案

物联网地震预警项目介绍&#xff1a; 地震&#xff0c;俗称地动。它像平常的刮风下雨一样&#xff0c;是一种常见的自然现象&#xff0c;是地壳运动的一种表现&#xff0c;即地球内部缓慢积累的能量突然释放而引起的地球表层的振动。据统计&#xff0c;5级以上地震就能够造成破…

什么是以太网交换机?以太网交换机的工作原理详解!

以太网交换机是基于以太网传输数据的交换机&#xff0c;以太网采用共享总线型传输媒体方式的局域网。以太网交换机的结构是每个端口都直接与主机相连&#xff0c;并且一般都工作在全双工方式。交换机能同时连通许多对端口&#xff0c;使每一对相互通信的主机都能像独占通信媒体…