java - 运行程序以监视文件 infiteley

标签 java tomcat servlets

我正在尝试无限运行一个程序,该程序监视日志文件并将已发生的错误更新到数据库并跟踪某些错误的最大发生次数,以便在一个错误发生太多次时发送电子邮件.我设法使程序能够适本地监听和更新并发送电子邮件,但我不知道我将如何启动该程序以无限运行,因为它将监视实时系统。另一方面,我有一个显示监控程序更新的信息的网络用户界面,换句话说,我不希望更新程序停止运行,即使我的网络用户界面在浏览器中关闭,我想要的幕后更新程序继续运行。我想将它们分开,以便它们彼此独立运行。我在前端使用 Servlet 和 JSP。我正在考虑在我的 servlet 中启动更新程序,但我想当它关闭时更新程序将停止运行,这是我试图避免的。非常感谢任何类型的建议,任何可用的工具都可以无限地运行程序并且仅在服务器关闭时停止并提前致谢。

NB: I wanted to use log4j to append errors to database to allow me easier 
updating but the system wasn't designed to accommodate my requirements so
I have no choice but to use this approach.

最佳答案

假设 Web UI 显示从数据库中检索到的信息,并且如果您想将 Web UI 与监视程序分开,我建议保持一个单独的 native Java 进程运行,该进程不断监视日志文件并更新数据库。数据库将用作两个 Web UI 和 Java 进程之间的通信媒介。

这样,Java 进程将保持独立于 Web UI 并可以无限期地运行。

这样想 -

1. Java process updates the database as it monitors the log file
2. The Web UI reading from database whenever it is up.

Java 进程可能还可以与 Web UI 服务通信以提供一些心跳来确认它已启动。

希望这对您有所帮助。

关于java - 运行程序以监视文件 infiteley,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17509814/

相关文章:

java - JOptionPane 和读取整数 - 初学者 Java

java - Spring "cannot be cast"

java - Spring aop事务不提交事务

java - JSP、JavaScript 中的可选表

java - Neo4J 输入无效 '(' : expected an identifier character, 空格,NodeLabel

c# - Java 和 .NET 流通过 IKVM 的互操作性

java - 从 solr schema.xml 中删除 <charFilter> 是否需要重新索引?

java - tomcat本地主机配置

java - 我们可以将消息写入Java Web应用程序中的不同响应对象吗?

java - Stubbing 一个带有副作用的 void 方法