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

无需重新发明轮子,是否有任何开源批量监控应用程序?

更一般的问题是,监控批处理过程的最佳方法是什么?

有帮助吗?

解决方案

目前是否存在一些批处理管理系统?或者作业是通过OS调度程序运行的? (即Windows Schedule Tasks或* nix cron

Quartz 是一个基于Java的开源(Apache许可证)作业调度程序,具有基础架构对于可用于通知目的的侦听器,但会涉及一些代码开发。

其他提示

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

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

当然,如果电子邮件子系统出错(并且邮件没有发送),所有投注都会被取消......

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top