Java web应用程序中的Monitor ScheduledExecutorService

Java web应用程序中的Monitor ScheduledExecutorService,java,servlets,web,Java,Servlets,Web,我们有一个带有ServletContextListener的web应用程序,可以启动多个ScheduledExecutorService 通过SNMP在运行web应用程序的服务器以外的远程位置更新某些Relaisboard 但是,由于远程位置的internet连接丢失,远程继电器板可能不可用 发生这种情况时,更新电路板的线程需要很长时间才能执行。如何监视ScheduledExecutorService的执行和运行 现在,我使用以下代码启动线程: schedulerLichtsturing = E

我们有一个带有ServletContextListener的web应用程序,可以启动多个ScheduledExecutorService 通过SNMP在运行web应用程序的服务器以外的远程位置更新某些Relaisboard

但是,由于远程位置的internet连接丢失,远程继电器板可能不可用

发生这种情况时,更新电路板的线程需要很长时间才能执行。如何监视ScheduledExecutorService的执行和运行

现在,我使用以下代码启动线程:

schedulerLichtsturing = Executors.newSingleThreadScheduledExecutor();
schedulerLichtsturing.scheduleAtFixedRate(new LichtsturingDaemon(), 0, 15, TimeUnit.SECONDS);
然而,我看到线程在一段时间后不再运行,我不知道为什么它会停止。因为一个意外的异常或其他原因?我如何监控这个

我还想监视线程的运行状态以及上次更新的时间


如何修复此问题?

可以通过日志跟踪。在log4j的帮助下记录开始时间、结束时间和异常,并定期跟踪详细信息。如果Runnable的run方法中出现未捕获的异常,执行器是否会停止?如果任务的任何执行遇到异常,则会抑制后续执行。否则,任务将仅通过取消或终止执行者而终止。