目前,我无法将 Java 应用程序设置为 Windows 服务,因此我设置了一个任务计划程序,并具有以下设置。
一般的-无论用户是否登录都运行
触发器-在 X 时间运行一次,每 1 小时重复一次。已启用已检查。
操作-启动程序- 运行 java 应用程序的 run.bat 的路径。
状况- 默认 (仅当计算机使用交流电时才启动任务r 和如果计算机切换到电池供电则停止)
设置-允许按需运行任务和如果正在运行的任务没有按要求结束,则强制停止已检查,并且如果任务运行时间超过被设定为2小时。
检查日志时,应用程序似乎运行良好并正在重新启动,直到几天后的某个时间点,它在 13:00:00 停止工作,在 14:00:00 开始工作,在 15:00:00 停止工作,然后在 16:00:00 再次开始工作等等。
编辑:添加日志
10:00:01.628 [Thread-542] 跟踪作业:.. | 2320041 | 事件:RunOutOfData
10:00:01.628 [Thread-542] INFO 作业:.. | 进入休眠 30.0 秒。
11:00:04.607 [主要] 信息程序:服务已启动。
11:00:04.623 [主要] 信息程序:将使用 Azure 存储。
11:00:04.623 [主要] 信息程序:(重新)启动从服务的下载操作。
11:00:04.623 [主要] 跟踪:向微软请求承载令牌。
上面的日志显示它休眠了 30 秒,然后一个小时后它神奇地启动了。通常在休眠日志之后会显示这一行
09:59:59.018 [Thread-543] INFO 作业:.. | 恢复营业!
是的,日志记录级别很详细,如果有任何错误,都会记录在这里。
编辑2: 这是我没有提到的最后一个设置这或许就是根本原因。