From 786e4af3ebb9c0cd912115070d3325aa9f06fcfb Mon Sep 17 00:00:00 2001 From: ialbert Date: Sat, 27 May 2023 14:45:25 +0300 Subject: [PATCH] sessions continue phase --- .../main/java/ru/spcex/clearing/service/EventsReceiver.java | 5 ++++- .../ru/spcex/clearing/session/stage/AbstractSession.java | 6 ++++++ .../clearing/session/stage/PrimaryAuctionBnSession.java | 3 +++ .../clearing/session/stage/SecondaryAuctionT0Session.java | 3 +++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java index 678b06f36..25025c63b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java @@ -77,7 +77,10 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean { .forDestination(Task.startOfT0.topic(), callbacks::put); callback(Object.class) - .setConsumer(primaryAuctionBnSession::continueSession) + .setConsumer(req -> { + primaryAuctionBnSession.continueSession(req); + secondaryAuctionT0Session.continueSession(req); + }) .forDestination(Consts.CONTINUE_SESSION_BN_FIRST_PART, callbacks::put); callback(STradesImportedRequest.class) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/AbstractSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/AbstractSession.java index a6c172cf7..0ab74d8e1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/AbstractSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/AbstractSession.java @@ -65,4 +65,10 @@ public class AbstractSession { } } + protected boolean isRunning() { + synchronized (this.currStage) { + return this.currStage.get() != null; + } + } + } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java index 79b87da88..aa9f9ca02 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java @@ -99,6 +99,9 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali public void continueSession(BaseRequest req) { try { + if (!isRunning()) { + return; + } if (!checkStage(TaskType.StartRevise)) { log.error("cannot continue session, current stage is {}", currStage.get()); throw new StageException(); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java index 6df4b79b2..7ae83e1c7 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java @@ -99,6 +99,9 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia public void continueSession(BaseRequest req) { try { + if (!isRunning()) { + return; + } if (!checkStage(TaskType.StartRevise)) { log.error("cannot continue session, current stage is {}", currStage.get()); throw new StageException();