SQS: DeletePersist возвращает ошибку (500 при сбое Redis), fail-fast загрузка очередей, дефолты атрибутов при CreateQueue, защита SqsErrors от nil-deref
This commit is contained in:
@@ -59,8 +59,12 @@ func DeleteMessageV1(req *http.Request) (int, interfaces.AbstractResponseBody) {
|
||||
// ВАЖНО: запись в Duplicates НЕ удаляем — AWS держит dedup-окно 5 минут
|
||||
// независимо от удаления сообщения (иначе повторный send с тем же
|
||||
// dedupId доставлялся бы повторно). Чистит только истечение окна (PeriodicTasks).
|
||||
// Удаляем одно сообщение из Redis — O(1)
|
||||
persistence.DeleteMessagePersist(key, msg.Uuid)
|
||||
// Удаляем одно сообщение из Redis — O(1). Ошибка → 500: иначе клиент
|
||||
// получил бы 200, а после рестарта сообщение «воскресло» бы.
|
||||
if err := persistence.DeleteMessagePersist(key, msg.Uuid); err != nil {
|
||||
log.Errorf("DeleteMessage: не удалось удалить сообщение из Redis: %v", err)
|
||||
return utils.CreateErrorResponseV1("InternalError", true)
|
||||
}
|
||||
// Метаданные очереди (duplicates, FIFO state)
|
||||
persistence.SaveQueue(key, queue)
|
||||
respStruct := models.DeleteMessageResponse{
|
||||
|
||||
Reference in New Issue
Block a user