我正在使用Tanuki软件包装器作为Windows服务构建java应用程序。我以简单HelloWorldServerJava类为例,它运行良好。我在wrapper.conf文件wrapper.ntservice.starttype = AUTO_START
中进行了配置,用于在windows系统启动时自动启动服务。
但我希望我的服务每两个小时自动启动一次,我该怎么做,如果有人有想法,请帮助我。
提前非常感谢。
最后,我在wrapper.conf文件中完成了以下配置,作为
wrapper.pausable=TRUE
wrapper.pause-on-startup=TRUE
wrapper.timer.1.interval=minute=120
wrapper.timer.1.action=restart, resume
wrapper.on_exit.default=PAUSE
它基本上是在主jvm(java应用程序)关闭后暂停包装器操作,然后在2小时后自动重新启动包装器的本地jvm,并用更新的数据恢复所需的输出。
感谢所有帮助我的人。
最好保持java应用程序的运行,并从应用程序中调度任务。
例如使用http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html
如果在main()方法中调度任务,则会启动一个新的Timer Thread,因此应用程序将在main(()结束后继续运行,并继续以指定的速率执行调度的任务。
Ajeet,正如GreyFairer所说,从JVM中运行任务通常是个好主意,尤其是在经常发生任务的情况下。
Wrapper使用pausable特性来停止和启动JVM的能力肯定也很好。如果JVM很大,并且需要完成的任务相对较少,那么这种方法会更好。启动JVM需要一些负载。
如果您将configuration-include文件与wrapper.restart.reload_configuration=TRUE属性组合在一起,那么在执行JVM时重新启动JVM还有一个好处,即允许您更改每次调用的配置。您可以根据需要修改include文件,以便每个JVM都使用所需的信息运行。(如果需要的话,当然有一些方法可以在单个JVM调用中获得相同的结果。)
干杯,Leif