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…

渝粤教育,我是客服,2022重返王者荣耀,再露凶残,欢迎约战

渝粤教育&#xff0c;我是客服&#xff0c;2022重返王者荣耀&#xff0c;再露凶残&#xff0c;欢迎约战

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

一、串口服务器是什么&#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。 模块具有…

[渝粤教育] 三江学院 大学生创新基础课程 参考 资料

教育 -大学生创新基础课程-章节资料考试资料-三江学院【】 引言1 单元测验 1、【单选题】本课程《创青春——大学生创新基础课程》的学分为&#xff08; &#xff09;分&#xff0c;和后续开设的&#xff08; &#xff09;共同组成为4个学分的创新创业基础课程。 A、1&#xff…

使用Spring Cloud HystrixCommands的功能Hystrix

Spring的WebClient提供了一个非阻塞客户端来进行服务调用。 Hystrix虽然现在处于维护模式&#xff0c;但已通过防止级联故障&#xff0c;为慢速或故障上游服务的呼叫提供断路器来保护服务对服务的呼叫。 在本文中&#xff0c;我将探讨Spring Cloud如何提供一种更新的功能方法&…

串口服务器端口配置及调试的6大技巧

1、如何配置串行服务器&#xff1f; 在使用终端串口服务器之前&#xff0c;必须在连接和使用系统之前根据自己的操作环境和应用程序要求配置参数。这些参数主要包括网络参数&#xff0c;每个串行端口的操作模式&#xff0c;打印服务以及设备本身的管理信息和其他内容。 2、如…

飞畅科技告诉你什么是集成串口服务器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;或…

[渝粤教育] 三江学院 软件测试 参考 资料

教育 -软件测试-章节资料考试资料-三江学院【】 随堂练习 1、【单选题】下列关于软件测试的说法中正确的是&#xff1a; A、因为测试工作简单&#xff0c;所以其对软件产品质量影响不大&#xff1b; B、通过软件测试&#xff0c;主要发现软件产品的功能问题&#xff1b; C、软件…

【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、【单选题】一个物体微元的变形速度大小与所受切应力成…