добавить масштабируемый outbox worker для паспортов маршрутов
- добавить properties и config values для route passport outbox worker - включить Spring scheduling в route-processing service - добавить транзакционный сервис claim и status transitions для outbox - публиковать claimed outbox rows через существующий Kafka publisher - обрабатывать publish failures по каждой row с bounded exponential backoff - обеспечить безопасность при нескольких pod через FOR UPDATE SKIP LOCKED и lockedUntil - добавить unit tests для claim, publish transitions, retry/fail behavior и batch-обработки worker
This commit is contained in:
@@ -54,6 +54,13 @@ app:
|
|||||||
max-attempts: 3
|
max-attempts: 3
|
||||||
backoff-ms: 1000
|
backoff-ms: 1000
|
||||||
max-backoff-ms: 30000
|
max-backoff-ms: 30000
|
||||||
|
outbox:
|
||||||
|
enabled: true
|
||||||
|
batch-size: 50
|
||||||
|
fixed-delay-ms: 1000
|
||||||
|
lock-timeout-ms: 60000
|
||||||
|
initial-backoff-ms: 1000
|
||||||
|
max-backoff-ms: 60000
|
||||||
kafka:
|
kafka:
|
||||||
topics:
|
topics:
|
||||||
input: pcp.request.survey-georeference.v1
|
input: pcp.request.survey-georeference.v1
|
||||||
|
|||||||
+2
@@ -4,6 +4,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication
|
|||||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan
|
import org.springframework.boot.context.properties.ConfigurationPropertiesScan
|
||||||
import org.springframework.boot.runApplication
|
import org.springframework.boot.runApplication
|
||||||
import org.springframework.kafka.annotation.EnableKafka
|
import org.springframework.kafka.annotation.EnableKafka
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Главный класс Spring Boot приложения.
|
* Главный класс Spring Boot приложения.
|
||||||
@@ -13,6 +14,7 @@ import org.springframework.kafka.annotation.EnableKafka
|
|||||||
@ConfigurationPropertiesScan
|
@ConfigurationPropertiesScan
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableKafka
|
@EnableKafka
|
||||||
|
@EnableScheduling
|
||||||
class RoutePassportConsumerApplication
|
class RoutePassportConsumerApplication
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user