上海社保网站哪里做转入,大学生网页设计怎么做,佛山个人建站模板,免费注册跨境电商平台有哪些看来我终于快要结束本系列有关使用Spring进行错误跟踪的博客了#xff0c;对于那些还没有阅读该系列博客的人#xff0c;我正在编写一个简单但几乎具有工业实力的Spring应用程序#xff0c;扫描日志文件中的异常#xff0c;然后生成报告。 在本系列的第一个博客中#xff… 看来我终于快要结束本系列有关使用Spring进行错误跟踪的博客了对于那些还没有阅读该系列博客的人我正在编写一个简单但几乎具有工业实力的Spring应用程序扫描日志文件中的异常然后生成报告。 在本系列的第一个博客中这些是我的最初要求 搜索给定目录及其子目录可能以查找特定类型的文件。 如果找到文件请检查其日期是否需要搜索文件以查找错误 如果文件足够年轻以至于无法检查则对其进行验证以查找异常。 如果它包含例外是我们正在寻找的例外还是被排除在外 如果它包含我们所需要的例外类型则将详细信息添加到报告中。 检查完所有文件后格式化报告以准备发布。 使用电子邮件或其他技术发布报告。 整个过程每天都会在给定的时间运行 该博客介绍了满足8号要求的情况 “整个事情每天都会在给定的时间运行” 这意味着实施某种调度。 现在Java已经存在了很长时间这意味着有许多调度任务的方法。 这些范围包括 使用一个简单的线程并长时间sleep(...) 。 使用Timer和TimerTask对象。 使用ScheduledExecutorService 。 使用Spring的TaskExecutor和TaskScheduler类。 使用Spring的EnableScheduling和Scheduled注释从Spring 3.1开始。 使用更专业的时间表。 调度程序的专业性更强从Quartz 免费到Obsidian 似乎更高级但要花钱。 如您所料Spring包含了Quartz Scheduler支持。 实际上有两种方法可以将Quartz Scheduler集成到您的Spring应用程序中它们是 使用JobDetailBean 使用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 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context-support/artifactIdversion${org.springframework-version}/versionexclusions!-- Exclude Commons Logging in favour of SLF4j --exclusiongroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactId/exclusion/exclusions/dependency!-- Spring Quartz need transactions --dependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion${org.springframework-version}/version/dependency!-- Quartz framework --dependencygroupIdorg.quartz-scheduler/groupIdartifactIdquartz/artifactIdversion1.8.6/version!-- You cant 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配置这涉及三个步骤 创建一个MethodInvokingJobDetailFactoryBean的实例。 它具有两个属性要在预定的时间间隔调用的bean的名称以及要调用的bean上的方法的名称。 使用CronTriggerFactoryBean将MethodInvokingJobDetailFactoryBean耦合到cron表达式 最后使用SchedulerFactoryBean调度整个caboodle 配置了这三个bean之后您将获得一些类似于以下内容的XML bean idFileLocatorJobclassorg.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBeanproperty nametargetObject referrorTrackService /property nametargetMethod valuetrackErrors //beanbean idFileLocatorTriggerclassorg.springframework.scheduling.quartz.CronTriggerFactoryBeanproperty namejobDetail refFileLocatorJob /!-- run every morning at 2 AM --property namecronExpression value${cron.expression} //beanbean classorg.springframework.scheduling.quartz.SchedulerFactoryBeanproperty nametriggerslistref beanFileLocatorTrigger /!-- 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.expression0 0 2 * * ?# Use this to test the app (every minute)
#cron.expression0 0/1 * * * ? 在这里我有两种表达一种将工作安排在每天凌晨2点运行另一种被注释掉每分钟运行一次。 这是该应用程序不完全具有工业实力的一个实例。 如果有一个“合适的”应用程序那么我可能会在每个环境DEVUAT和生产等中使用一组不同的属性。 释放此应用程序仅需几个步骤而第一个步骤是创建可执行的JAR文件。 下次再说。 该博客的代码可在Github上找到 https : //github.com/roghughe/captaindebug/tree/master/error-track 。 如果您想查看本系列中的其他博客请在这里看…… 使用Spring跟踪应用程序异常 使用Spring跟踪异常–第2部分–委托模式 错误跟踪报告–第3部分–策略和软件包私有 跟踪异常–第4部分– Spring的邮件发件人 翻译自: https://www.javacodegeeks.com/2014/04/tracking-exceptions-part-5-scheduling-with-spring.html