This commit is contained in:
Ivan Nikolaev-Axenov 2024-09-10 17:51:43 +03:00
parent 3a43598223
commit 426d608a44
4 changed files with 32 additions and 30 deletions

View file

@ -4,6 +4,8 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.nio.file.Files;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
@ -12,12 +14,9 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import ru.spcex.clearing.backendapi.meta.MetaServer;
import java.io.IOException;
import java.nio.file.Files;
@Configuration
public class MetaConfiguration {
@Value("file:${spring.config.location}/meta/meta.json")
@Value("file:${spring.config.location}/meta.json")
private Resource meta;
@Bean("metaJson")

View file

@ -1,5 +1,8 @@
package ru.spcex.clearing.service.payment;
import static ru.spcex.clearing.session.stage.impl.GatewayRequester.mapError;
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
import java.math.BigDecimal;
import java.time.Instant;
import java.util.Locale;
@ -40,7 +43,6 @@ import ru.spcex.clearing.service.registry.RegistryManager;
import ru.spcex.clearing.service.schedule.TradingTimeService;
import ru.spcex.clearing.service.validation.ValidationStored;
import ru.spcex.clearing.session.stage.impl.GatewayRequester;
import static ru.spcex.clearing.session.stage.impl.GatewayRequester.mapError;
import ru.spcex.clearing.util.LocaleUtil;
import ru.spcex.clearing.util.security.UserRoleVerification;
import ru.spcex.platform.enumeration.CurrencyCode;
@ -55,7 +57,6 @@ import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IEnumId;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
import ru.spcex.platform.utils.localization.SpringPropertiesLocalizer;
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
import ru.spcex.platform.utils.text.TextUtil;
import ru.spcex.platform.utils.validation.IValidator;
@ -188,14 +189,9 @@ public class PaymentInstructionOutboundService {
sDf54.setId(idGenerator.nextId());
sDf54.setGenerationId(pmt.getId());
if (time.isTradingTime()) {
Supplier<AssetOperationRequest> builder = () -> {
if (tcr != null) {
return GatewayRequestCreator.from(pmt,
Supplier<AssetOperationRequest> builder = () -> GatewayRequestCreator.from(pmt,
assets.get().a__b().getTradingCode(),
tcr.getCode());
}
return null;
};
tcr == null ? null : tcr.getCode());
Optional<Boolean> gatewayOk = gateway.gatewayRequestAndWait(builder);
if (gatewayOk.isEmpty() || gatewayOk.get().equals(Boolean.FALSE)) {
String gtwErrMsg = msgs.resolve(mapError(gatewayOk));

View file

@ -2,7 +2,17 @@ package ru.spcex.clearing.platform.messaging.service;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
@ -25,17 +35,6 @@ import ru.spcex.platform.utils.enumeration.IMessageResolver;
import ru.spcex.platform.utils.log.ExceptionUtils;
import ru.spcex.platform.utils.validation.IValidator;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
/**
* утилитный класс для обработки сообщений из очереди
*/
@ -130,6 +129,7 @@ public class QueueConsumer implements AutoCloseable {
try {
Thread.sleep(1000L);
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
log.info("Thread interrupted. {}", ExceptionUtils.getStackTrace(ie));
break;
}
@ -197,7 +197,10 @@ public class QueueConsumer implements AutoCloseable {
}
send = producer.send(respRec);
send.get();
} catch (InterruptedException | ExecutionException e) {
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
log.error(ExceptionUtils.getStackTrace(e));
} catch (ExecutionException e) {
log.error(ExceptionUtils.getStackTrace(e));
}
});

View file

@ -1,5 +1,7 @@
package ru.spcex.clearing.platform.messaging.service;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.HashMap;
@ -13,8 +15,6 @@ import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
@ -104,7 +104,8 @@ public class QueueConsumerV2 implements AutoCloseable {
log.warn("Too many error at row, {}. Sleep.", lastErrors);
try {
Thread.sleep(1000L);
} catch (InterruptedException e){
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
log.info("Thread interrupted. {}", ExceptionUtils.getStackTrace(e));
break;
}
@ -216,7 +217,10 @@ public class QueueConsumerV2 implements AutoCloseable {
}
send = producer.send(respRec);
send.get();
} catch (InterruptedException | ExecutionException e) {
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
log.error(ExceptionUtils.getStackTrace(e));
} catch (ExecutionException e) {
log.error(ExceptionUtils.getStackTrace(e));
}
});