要给定时任务的执行情况做一个判断,如果执行异常,要发送邮件通知相关的处理人,但是定时任务里面,都被 TRY..CATCH 了,无法抛出异常来进行判断,这个要怎么处理呢。。。
1
zoharSoul 2020-05-12 11:14:58 +08:00
catch 里面 throw 出来.
|
2
Solace202 2020-05-12 12:12:30 +08:00
1L 正解,throw 一个自己定义的异常
|
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 等(自动重启任务),也十分好用,没出过问题。 |