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();