P0.3: синхронный персист SendMessage до ответа 200
Добавлен persistence.SaveMessageSync (синхронный HSet, возвращает ошибку). SendMessage теперь пишет сообщение в Redis ДО возврата клиенту; при ошибке Redis сообщение откатывается из памяти и возвращается InternalError (новая ошибка в models/errors.go). Устраняет окно потери подтверждённого сообщения при краше пода между 200 OK и асинхронной записью.
This commit is contained in:
@@ -30,6 +30,8 @@ func init() {
|
||||
"PurgeQueueInProgress": {HttpError: http.StatusForbidden, Type: "Sender", Code: "AWS.SimpleQueueService.PurgeQueueInProgress", Message: "Only one PurgeQueue operation on a queue is allowed every 60 seconds."},
|
||||
// OverLimit — превышен лимит сообщений в очереди (OOM-защита)
|
||||
"OverLimit": {HttpError: http.StatusBadRequest, Type: "OverLimit", Code: "OverLimit", Message: "The queue contains the maximum number of messages."},
|
||||
// InternalError — внутренняя ошибка сервера (например, не удалось персистить сообщение)
|
||||
"InternalError": {HttpError: http.StatusInternalServerError, Type: "InternalError", Code: "AWS.SimpleQueueService.InternalError", Message: "We encountered an internal error. Please try again."},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user