java.util.Timer停止,没有任何异常
我每2分钟去FTP上传新文件。 我用java.util.Timer实现了它。但经过一段时间——几天甚至一周——它毫无例外、毫无理由地停止了 我发现了一条线索: 但其中并没有特别的解决方案。 我读过ScheduledExecutorService,但据我所知,它和Timer是一样的java.util.Timer停止,没有任何异常,java,timer,scheduledexecutorservice,Java,Timer,Scheduledexecutorservice,我每2分钟去FTP上传新文件。 我用java.util.Timer实现了它。但经过一段时间——几天甚至一周——它毫无例外、毫无理由地停止了 我发现了一条线索: 但其中并没有特别的解决方案。 我读过ScheduledExecutorService,但据我所知,它和Timer是一样的 请给我一些想法 您可以尝试在主线程中使用Thread.setDefaultUncaughtExceptionHandler()API设置默认异常处理程序,并尝试记录任何可能被悄悄吞没的可丢弃/异常。我刚才看到没有人回
请给我一些想法 您可以尝试在主线程中使用
Thread.setDefaultUncaughtExceptionHandler()
API设置默认异常处理程序,并尝试记录任何可能被悄悄吞没的可丢弃/异常。我刚才看到没有人回答这个问题,可能是因为这是重复的
ScheduledExecutorService使用System.nanotime()
和Java.util.Timer使用System.currentTimeMillis()
System.currentTimeMillis()
取决于系统时间,并且System.nanotime()
给出了纳秒,因为一些固定的任意初始时间与系统时间无关。因此,系统时间的任何变化(由于NTP时间修正或系统备用)可能会或可能不会影响计时器的执行。这就是计时器失败的原因
有关更多详细信息,请参阅-在稀疏线程上运行的计时器。如果发生任何异常,线程将停止。捕获run()或类似方法中的所有可丢弃文件,并将其输出到日志。