diff --git a/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java b/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java index ee4b265022..df62a34412 100644 --- a/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java +++ b/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java @@ -11,6 +11,7 @@ import com.fr.event.Event; import com.fr.event.Listener; import com.fr.event.Null; import com.fr.general.ComparatorUtils; +import com.fr.log.FineLoggerFactory; import com.fr.process.FineProcess; import com.fr.process.ProcessEventPipe; import com.fr.process.engine.core.FineProcessContext; @@ -37,7 +38,7 @@ public class DesignerSuperListener { private final ScheduledExecutorService service = Executors.newScheduledThreadPool(2, new NamedThreadFactory("DesignerListener")); private final ExecutorService helpService = Executors.newSingleThreadExecutor( new NamedThreadFactory("DesignerSuperListener-Help")); - + private final ScheduledExecutorService EXIT_SERVICE = Executors.newSingleThreadScheduledExecutor( new NamedThreadFactory("DesignerSuperListener-Exit")); private FineProcess process; private ScheduledFuture fixedFuture; private ScheduledFuture onceFuture; @@ -141,6 +142,11 @@ public class DesignerSuperListener { } private void fallBackReport() { + // 60S都没退出去就强制关闭 + EXIT_SERVICE.schedule(() -> { + FineLoggerFactory.getLogger().error("[DesignerSuperListener] The designer failed to exit gracefully, attempting a forced shutdown."); + System.exit(1); + }, 60, TimeUnit.SECONDS); DesignUtils.initLookAndFeel(); StartErrorMessageCollector.getInstance().record(DesignerErrorMessage.UNEXCEPTED_FALL_BACK.getId(), DesignerErrorMessage.UNEXCEPTED_FALL_BACK.getMessage(),