日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發布時間:2023/12/3 javascript 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring 异常捕获异常_跟踪异常–第5部分–使用Spring进行计划 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spring 異常捕獲異常

看來我終于快要結束本系列有關使用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 --><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配置,這涉及三個步驟:

  • 創建一個MethodInvokingJobDetailFactoryBean的實例。 它具有兩個屬性:您要在預定的時間間隔調用的bean的名稱,以及您要調用的bean上的方法的名稱。
  • 使用CronTriggerFactoryBean將MethodInvokingJobDetailFactoryBean耦合到cron表達式
  • 最后,使用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 。 如果您想查看本系列中的其他博客,請在這里看……
  • 使用Spring跟蹤應用程序異常
  • 使用Spring跟蹤異常–第2部分–委托模式
  • 錯誤跟蹤報告–第3部分–策略和軟件包私有
  • 跟蹤異常–第4部分– Spring的郵件發件人
  • 翻譯自: https://www.javacodegeeks.com/2014/04/tracking-exceptions-part-5-scheduling-with-spring.html

    spring 異常捕獲異常

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的spring 异常捕获异常_跟踪异常–第5部分–使用Spring进行计划的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。