EventsReceiver start sessions fix

This commit is contained in:
ialbert 2023-05-27 14:40:07 +03:00
parent 84bda2fa12
commit 8d21e5a23e

View file

@ -5,7 +5,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Service;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.CreateRegistryRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.Sdf04Request;
@ -17,7 +16,6 @@ import ru.spcex.clearing.session.stage.PrimaryAuctionB0Session;
import ru.spcex.clearing.session.stage.PrimaryAuctionBnSession;
import ru.spcex.clearing.session.stage.SecondaryAuctionT0Session;
import ru.spcex.platform.enumeration.Task;
import ru.spcex.platform.utils.enumeration.IEnumKey;
import static ru.spcex.clearing.platform.messaging.domain.Consts.S_TRADES_IMPORTED;
@ -71,8 +69,13 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean {
callback(LauncherCommandRequest.class)
.setConsumer(this::startSession)
.setConsumer(primaryAuctionBnSession::runSession)
.forDestination(Task.startOfClearing.topic(), callbacks::put);
callback(LauncherCommandRequest.class)
.setConsumer(secondaryAuctionT0Session::runSession)
.forDestination(Task.startOfT0.topic(), callbacks::put);
callback(Object.class)
.setConsumer(primaryAuctionBnSession::continueSession)
.forDestination(Consts.CONTINUE_SESSION_BN_FIRST_PART, callbacks::put);
@ -85,17 +88,4 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean {
.forDestination(Consts.REGISTRY_NEW, callbacks::put);
init();
}
private void startSession(BaseRequest<LauncherCommandRequest> request) {
LauncherCommandRequest payload = request.getRequestPayload();
Task specificSession = IEnumKey.getEnumByKey(Task.class, payload.getTaskName());
if (specificSession == null) {
log.error("unknown session: {}", payload.getTaskName());
return;
}
switch (specificSession) {
case startOfClearing -> primaryAuctionBnSession.runSession(request);
case startOfT0 -> secondaryAuctionT0Session.runSession(request);
}
}
}