feat(consumer): битые envelope → DLQ вместо потери
processTelemetry теперь возвращает sentinel errInvalidEnvelope при битом JSON (раньше — молчаливый nil → mусор подтверждался и терялся). Consumer при этой ошибке кладёт тело в DLQ (SQS_DLQ_NAME, дефолт iot-telemetry-dlq) и подтверждает основное сообщение; без DLQ — только логирует, но НЕ подтверждает (оседает). Добавлены SQSDLQName в config + DefaultSQSDLQName. Реальные ошибки PG (не invalid) по-прежнему не подтверждаются и уходят в ретрай после visibility timeout.
This commit is contained in:
@@ -13,6 +13,11 @@ const (
|
||||
// DefaultSQSQueueName — очередь телеметрии IoT.
|
||||
DefaultSQSQueueName = "iot-telemetry"
|
||||
|
||||
// DefaultSQSDLQName — DLQ для «мёртвых» сообщений: битые envelope, которые
|
||||
// нельзя разобрать (повторная обработка бессмысленна). Валидные данные
|
||||
// идут в основную очередь; неразборчивые — сюда, а не отбрасываются.
|
||||
DefaultSQSDLQName = "iot-telemetry-dlq"
|
||||
|
||||
// DefaultSQSRegion — регион для self-hosted SQS (не важен, оставлен для SDK).
|
||||
DefaultSQSRegion = "us-east-1"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user