3

我们有 50 多个 Java 批处理进程,它们在一天中的不同时间运行。它们在 Solaris 机器上运行,并通过 cron 启动。目前,我们只知道它们是成功还是失败的唯一方法是通过在每个批处理结束时生成的电子邮件。我们有一个支持团队来监控这些电子邮件。最近,我们遇到了未收到电子邮件的问题,即使批次正在运行。肯定有更好的办法。

不用重新发明轮子,有没有开源的批量监控应用?

还有一个更普遍的问题,监控批处理过程的最佳方法是什么?

4

3 回答 3

3

目前是否有一些批次管理系统到位?或者作业是否通过操作系统调度程序运行?(即 WindowsSchedule Tasks或 *nix cron

Quartz是一个开源(Apache 许可)基于 java 的作业调度程序,它为可用于通知目的的侦听器提供了适当的基础设施,但会涉及一些代码开发。

于 2008-11-17T15:50:30.823 回答
3

我不了解开源批处理监控应用程序,但是 Spring 有一个新的子项目:提供批处理框架的 Spring-Batch。我已经在一些新项目中成功使用了它。

当您启动批处理作业时,您可以连接作业执行侦听器。在我的例子中,当作业因异常而失败时,我的执行侦听器会拦截它并将带有相关堆栈跟踪的错误电子邮件发送到众所周知的电子邮件列表。我在批处理结束时使用 Tasklet 发送电子邮件以指示正常完成。

当然,如果电子邮件子系统出现错误(并且消息没有被发送),那么所有的赌注都将被取消......

于 2008-11-17T16:03:32.047 回答
1

必须有一种方法可以使用 Nagios 来查看日常任务是否已成功运行,因为它可以以多种不同的方式监视事物(从 PID 文件到存在的文本文件,到拖网日志文件等)。遗憾的是,Nagios 不在我的工作范围内,所以我不能更进一步。

于 2008-11-17T16:10:18.803 回答