我正在使用Tanuki Software Wrapper将Java应用程序构建为Windows服务。我按照示例Simple HelloWorldServer Java Class进行操作。我在wrapper.conf文件wrapper.ntservice.starttype = AUTO_START
中进行了配置,以便在Windows系统启动时自动启动服务。
但我希望我的服务会每两个小时自动启动一次,我该怎么办呢,如果有人有想法请帮助我。
提前多多感谢。
答案 0 :(得分:1)
最后,我通过以下配置在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并用更新的数据恢复所需的输出。
感谢所有人试图帮助我。
答案 1 :(得分:0)
最好让Java应用程序保持运行,并在应用程序中安排任务。
E.g。使用http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html
如果在main()方法中安排任务,则会启动一个新的Timer Thread,因此应用程序将在main()结束后继续运行,并以您指定的速率继续执行计划任务。
答案 2 :(得分:0)
Ajeet, 正如GreyFairer所说,从JVM中运行任务通常是个好主意,特别是如果它们经常发生的话。
Wrapper使用可暂停功能停止和启动JVM的能力肯定也有效。如果您的JVM很大,这种方法可能会更好,而且它需要完成的任务相对不常见。启动JVM会有一些负担。
如果将配置包含文件与wrapper.restart.reload_configuration = TRUE属性组合在一起,那么重新启动JVM也可以让您更改每次调用的配置。您可以根据需要修改包含文件,以便每个JVM都运行所需的信息。 (当然,如果需要,可以在单个JVM调用中获得相同结果。)
干杯,莱夫