etreschenkov 2023-06-07 18:46:58 +03:00
parent 9292206208
commit a8dd8d78ef
2 changed files with 35 additions and 15 deletions

View file

@ -11,6 +11,9 @@ import ru.spcex.platform.enumeration.UserRole;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Configuration
public class BeanConfiguration {
@Bean
@ -25,4 +28,8 @@ public class BeanConfiguration {
return new UserRoleVerification(imdgProvider, messageResolver, UserRole.Admin, GatewayError.UserVerifyDenial);
}
@Bean("gatewayExecutor")
public ExecutorService executor() {
return Executors.newFixedThreadPool(10);
}
}

View file

@ -21,13 +21,12 @@ import ru.spcex.clearing.gatewayapi.request.CompaniesRequest;
import ru.spcex.clearing.gatewayapi.request.FondListingsRequest;
import ru.spcex.clearing.gatewayapi.request.MMListingsRequest;
import ru.spcex.clearing.gatewayapi.response.CommonResponse;
import ru.spcex.platform.enumeration.Section;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ExecutorService;
@Controller
@RequestMapping("/")
@ -38,22 +37,21 @@ public class GatewayController {
private final Processor<FondListingsRequestParam> fondListingsRequestProcessor;
private final Processor<MMListingsRequestParam> mmListingsRequestProcessor;
private final Processor<CompaniesRequestParam> companiesRequestProcessor;
private final ExecutorService executor;
private List<String> validTypes = Arrays.asList("DAY_START", "ON_DEMAND");
public GatewayController(
IMessageResolver messageResolver,
@Qualifier("fondListingsRequestProcessor")
Processor<FondListingsRequestParam> fondListingsRequestProcessor,
@Qualifier("mmListingsRequestProcessor")
Processor<MMListingsRequestParam> mmListingsRequestProcessor,
@Qualifier("companiesRequestProcessor")
Processor<CompaniesRequestParam> companiesRequestProcessor
) {
@Qualifier("fondListingsRequestProcessor") Processor<FondListingsRequestParam> fondListingsRequestProcessor,
@Qualifier("mmListingsRequestProcessor") Processor<MMListingsRequestParam> mmListingsRequestProcessor,
@Qualifier("companiesRequestProcessor") Processor<CompaniesRequestParam> companiesRequestProcessor,
@Qualifier("gatewayExecutor") ExecutorService executor) {
this.messageResolver = messageResolver;
this.fondListingsRequestProcessor = fondListingsRequestProcessor;
this.mmListingsRequestProcessor = mmListingsRequestProcessor;
this.companiesRequestProcessor = companiesRequestProcessor;
this.executor = executor;
}
@ -72,8 +70,13 @@ public class GatewayController {
public CommonResponse listingsFond(@RequestBody FondListingsRequest request) {
// request.validate(validTypes, List.of(Section.FOND));
FondListingsRequestParam requestParam = new FondListingsRequestParam(request);
ProcessResult processResult = fondListingsRequestProcessor.process(requestParam);
if (processResult.getError() != null) throw new GatewayException(request, processResult.getError());
executor.submit(() -> {
ProcessResult processResult = fondListingsRequestProcessor.process(requestParam);
if (processResult.getError() != null) {
log.warn("Exception while process listingFind: {}", processResult.getError());
}
});
return createResponse(request, true);
}
@ -93,8 +96,14 @@ public class GatewayController {
public CommonResponse listingsMM(@RequestBody MMListingsRequest request) {
// request.validate(validTypes, List.of(Section.MKR));
MMListingsRequestParam requestParam = new MMListingsRequestParam(request);
ProcessResult processResult = mmListingsRequestProcessor.process(requestParam);
if (processResult.getError() != null) throw new GatewayException(request, processResult.getError());
executor.submit(() -> {
ProcessResult processResult = mmListingsRequestProcessor.process(requestParam);
if (processResult.getError() != null) {
log.warn("Exception while process listing_mm: {}", processResult.getError());
}
});
return createResponse(request, true);
}
@ -114,8 +123,12 @@ public class GatewayController {
public CommonResponse companies(@RequestBody CompaniesRequest request) {
// request.validate(validTypes, Collections.emptyList());
CompaniesRequestParam requestParam = new CompaniesRequestParam(request);
ProcessResult processResult = companiesRequestProcessor.process(requestParam);
if (processResult.getError() != null) throw new GatewayException(request, processResult.getError());
executor.submit(() -> {
ProcessResult processResult = companiesRequestProcessor.process(requestParam);
if (processResult.getError() != null) {
log.warn("Exception while process listing_mm: {}", processResult.getError());
}
});
return createResponse(request, true);
}