From 7543e4b08f09870c4a498bbb24336fb6cee1eed2 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Tue, 25 Apr 2023 11:49:26 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-268=20?= =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D1=83=20InterruptedExcepti?= =?UTF-8?q?on.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduler/config/PlannerQueueConfig.java | 8 +++++++- .../clearing/scheduler/service/TaskManager.java | 13 +++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/PlannerQueueConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/PlannerQueueConfig.java index 0534b2053..30b904f93 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/PlannerQueueConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/PlannerQueueConfig.java @@ -1,9 +1,12 @@ package ru.spcex.clearing.scheduler.config; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.scheduler.PlannerAllToday; import ru.spcex.clearing.scheduler.service.TaskManager; +import ru.spcex.platform.utils.log.ExceptionUtils; import java.util.Map; import java.util.concurrent.BlockingQueue; @@ -11,6 +14,7 @@ import java.util.concurrent.LinkedBlockingQueue; @Configuration public class PlannerQueueConfig { + private static final Logger log = LoggerFactory.getLogger(TaskManager.class); private static BlockingQueue> plannerQueue; @@ -23,7 +27,9 @@ public class PlannerQueueConfig { public static void addToPlannerQueue(TaskManager.Process process, PlannerAllToday plannerAllToday) { try { plannerQueue.put(Map.entry(process, plannerAllToday)); - } catch (InterruptedException ignored) { + } catch (InterruptedException e) { + log.warn("InterruptedException plannerQueue.put {}", ExceptionUtils.getStackTrace(e)); + Thread.currentThread().interrupt(); } } } diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java index f4c543bc2..fc4e3f3ce 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java @@ -14,6 +14,7 @@ import ru.spcex.platform.enumeration.Status; import ru.spcex.platform.enumeration.Task; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.log.ExceptionUtils; import java.time.*; import java.util.*; @@ -79,14 +80,17 @@ public class TaskManager implements InitializingBean, AutoCloseable { private void process() { outputExecutor.submit(() -> { - try { - while (!closed.get()) { + while (!closed.get()) { + try { //процесс ожидает пока появится новое сообщение в очереди Map.Entry entry = plannerQueue.take(); callbacks.get(entry.getKey()).accept(entry.getValue()); + } catch (InterruptedException e) { + closed.set(true); + Thread.currentThread().interrupt(); + } catch (Throwable t) { + log.error("InterruptedException in process, {}", ExceptionUtils.getStackTrace(t)); } - } catch (InterruptedException e) { -// closed.set(true); } }); } @@ -246,5 +250,6 @@ public class TaskManager implements InitializingBean, AutoCloseable { public void close() { log.debug("Closing task manager {}", getClass().getSimpleName()); closed.set(true); + outputExecutor.shutdown(); } }