询问应用程序它正在做什么(Java,独立控制台应用程序)

时间:2014-11-18 14:48:07

标签: java

我编写了一个独立的Java(控制台)应用程序,它运行的循环次数为:

  1. 检查数据库以执行要执行的新任务
  2. 执行任务
  3. 使用结果更新数据库
  4. 在醒来之前睡了n分钟重复以上
  5. 所以,它基本上是一个在后台运行的守护进程。我想添加询问应用程序的能力,“嘿应用程序,你现在正在做什么工作?你能详细说明你当前的任务吗?等等。”理想情况下,应用程序将有一个简单的方法来查询它的状态,但我不知道如何添加它。我查看了Restlet,并考虑了signal handling,但我正在寻找其他人的建议。

    我现在不关注日志记录,因为日志文件可能变得非常大,如果应用程序仅按需生成信息而不是始终生成它,那将会很棒(我希望尽可能减少影响应用程序性能的这个功能。)

    还有其他人试过这样做,还是有建议?提前谢谢。

2 个答案:

答案 0 :(得分:2)

没有理由担心日志记录,因为它可能会填满磁盘。查看内置日志轮换的Log4J。此外,您可以在运行时更改日志级别,因此您不必一直进行详细日志记录,也不必为代码的所有部分进行详细日志记录。

答案 1 :(得分:1)

JMX是一项可以帮助您的技术;见MBean Java tutorial。如果您使用的是Spring,那么还有一个JMX integration