我面临一个问题,我想安排一个特定的Java应用程序运行每x天,或每x分钟。 我真的想有一个平台独立的解决scheme,但我已经放弃希望find一个很好的解决scheme。
为了达到这个调度,我已经通过了几个解决scheme,一个是服务,一个是使用windows api。 我真的不喜欢使用服务,它不能很好地部署在我的项目。 我将不得不使用一些脚本来安装服务,这似乎并不是我正确的解决scheme。
我也经历了Windows的调度服务。 他们似乎是完美的工作。 但是我在parsing命令行时遇到了麻烦。 我希望能够在我安装它之后修改我的任务。 但是当我查询命令行工具时,输出语言可能会有所不同(区域设置)。
也许有一个解决scheme,实现不同的操作系统stategies?
当然,试试Quartz 。 没有脚本,没有服务,只是在你的应用程序的JAR。 所有的Java – 适用于任何操作系统。
我不明白为什么需要平台独立。 我的经验是,除非工作需要消失或服务器退休,否则计划的工作很少会从部署的服务器移出。 他们只是不动
如果Quartz不是你的一杯茶,我建议找一个比Windows更好地了解Windows的服务器管理员来部署你的cron作业并完成它。
尽管对于我来说,“独立于平台的解决方案”和“我想使用Windows调度服务”有点矛盾(我同意duffymo说Quartz可能是最好的纯Java解决方案),但某些Powershell脚本可能会使Windows比较容易 – 看看这里 , 这里 ,还有其他讨论Powershell的地方。 现代的Windows应该都有Powershell。