定时任务问题

2020-05-12 11:14:12 +08:00
 QZFCANBA

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

1637 次点击
所在节点    Java
3 条回复
zoharSoul
2020-05-12 11:14:58 +08:00
catch 里面 throw 出来.
Solace202
2020-05-12 12:12:30 +08:00
1L 正解,throw 一个自己定义的异常
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 等(自动重启任务),也十分好用,没出过问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/670843

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX