V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
QZFCANBA
V2EX  ›  Java

定时任务问题

  •  
  •   QZFCANBA · 2020-05-12 11:14:12 +08:00 · 1642 次点击
    这是一个创建于 1656 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    整个系统周一重启。

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

    各大框架都封装了非常实用的工具类,不用框架的也有 Quartz 等(自动重启任务),也十分好用,没出过问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2848 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:20 · PVG 17:20 · LAX 01:20 · JFK 04:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.