QZFCANBA
V2EX  ›  Java

定时任务问题

  •  
  •   QZFCANBA · May 12, 2020 · 2314 views
    This topic created in 2218 days ago, the information mentioned may be changed or developed.

    要给定时任务的执行情况做一个判断,如果执行异常,要发送邮件通知相关的处理人,但是定时任务里面,都被 TRY..CATCH 了,无法抛出异常来进行判断,这个要怎么处理呢。。。

    3 replies    2020-05-12 12:15:38 +08:00
    zoharSoul
        1
    zoharSoul  
       May 12, 2020
    catch 里面 throw 出来.
    Solace202
        2
    Solace202  
       May 12, 2020
    1L 正解,throw 一个自己定义的异常
    liuhaoqing
        3
    liuhaoqing  
       May 12, 2020
    我之前自己琢磨过一个法子,可能比较笨,但是还算好用。

    假设 jobA 是我们的业务需求,大约 30 秒执行一次。我会设定 jobB+jobC 并行监视 jobA 。

    jobA 在执行完毕,向数据库写数据的时,会多加一个时间戳。

    jobB 会在 jobA 执行完 2~3 秒内执行,其主要工作是检验 jobA 生成时间戳是否和上一次的不同。如果相同,连接的短信猫发送相关信息给负责人。同时将发送记录持久化。

    jobC 会在 jobB 执行完 2~3 秒内执行,其主要工作是检验 jobA 生成时间戳是否和上一次的不同,如果相同,检查 jobB 是否执行信息发送操作,若未执行,则调用短信猫接口发送信息。

    整个系统周一重启。

    整体做法比较浪费系统性能,但是由于是 jobA 监督性较强,要尽可能的保证其正常工作。

    各大框架都封装了非常实用的工具类,不用框架的也有 Quartz 等(自动重启任务),也十分好用,没出过问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5519 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 07:49 · PVG 15:49 · LAX 00:49 · JFK 03:49
    ♥ Do have faith in what you're doing.