从jvm外面停止计时器

set*_*thu 2 java

我有一个长时间运行的计时器任务.它实际上是一个批处理过程,它将永远循环并运行它的东西.该批处理程序是用Java编写的.现在我如何要求它优雅地关闭,例如我需要做一些维护?从JVM外部?

我可以想到一些肮脏的方法,在run方法的每个循环结束时,让它检查某个目录中是否存在文件.如果存在则会停止.或者创建一个数据库记录,要求它停止.

还有另一种更好的方法吗?

Ale*_*yak 5

您可能希望向程序添加对MBean的支持,并通过jconsole向其发送命令.

这是MBeans链接:

http://download.oracle.com/javase/1.5.0/docs/guide/management/overview.html

http://en.wikipedia.org/wiki/Java_Management_Extensions