Java scheduleWithFixedDelay()不工作

Java scheduleWithFixedDelay()不工作,java,scheduled-tasks,Java,Scheduled Tasks,我创建了一个时间表: private static final ScheduledThreadPoolExecutor EXECUTOR = new ScheduledThreadPoolExecutor(5); private ScheduledFuture<?> futureScheduler; this.beatTask = new BeatTask(); futureScheduler = EXECUTOR.scheduleWithFixedDelay(this.bea

我创建了一个时间表:

private static final ScheduledThreadPoolExecutor EXECUTOR = new ScheduledThreadPoolExecutor(5);

private ScheduledFuture<?> futureScheduler;

this.beatTask = new BeatTask();

futureScheduler = EXECUTOR.scheduleWithFixedDelay(this.beatTask, 10 * 1000, 300, TimeUnit.MILLISECONDS);
但有时调度程序不工作,任务完成后,可能正在等待某件事情或其他任何事情


我对调度程序发生的情况感到困惑。

可能的原因:您的run方法引发异常、代码出现死锁、您在某处取消了计划的任务等。没有足够的信息来帮助您。。。BeatTask在实践中做什么?您如何知道调度程序不工作?你有日志吗?输出在哪里?输出是什么。。。我有一部分日志。01-08 00:21:04.406信息心跳任务57运行OCPP心跳成功发送(这表示运行成功)。01-08 00:26:51.750错误BeatTask 101运行OCPP检测信号失败,原因=javax.xml.ws.WebServiceException:java.net.SocketTimeoutException:读取超时。(在此日志节拍结束后。)@sunilborad在您提供更多详细信息之前,最好是一个再现问题的完整示例,我们只能猜测。。。看:嗨,问题解决了。。。由于未在catch块中处理OutOfMemoryException,计划程序已停止。刚刚添加了Catch(Throwable ex){}。现在它工作正常了。谢谢你的帮助。
public class BeatTask implements Runnable {

   ......

   @Override

    public void run() {
     ......
     // send request to webService.
    }

}