Будет ли DyanomoDB удалять элемент немедленно на основе TTL, как мне добиться удаления элемента из таблицы через 5 минут?

У меня есть сеанс входа в систему, действующий в течение 5 минут с момента последнего действия. Если есть какое-либо действие, я обновляю атрибут времени жизни в элементе, добавляя 5 минут, в противном случае он должен быть удален во время, установленное в «expireAt». Но почему элемент в dynamoDB не удаляется в соответствии со сроком жизни, установленным в элементе «expireAt»?

В Java Spring-Boot я установил время EPOCH в секундах, как указано в документации login.setExpireAt((System.currentTimeMillis() / 1000) + 300);. Он не удаляет элемент в таблице через 5 минут. Какой альтернативный подход я могу использовать, чтобы обойти эту проблему?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Но почему элемент в dynamoDB не удаляется в соответствии со сроком жизни, установленным в элементе «expireAt»?

DynamoDB TTL работает максимально эффективно, поскольку обеспечивает бесплатное удаление вашей таблицы. Если срок действия вашего элемента истек, то в конечном итоге он может быть удален, но в будущем это может занять несколько минут/часов/дней. Если вам нужны более строгие удаления, у вас есть несколько вариантов:

  1. Создайте собственное выселение TTL с помощью планировщика EventBridge.
  2. Используйте выражение фильтра при чтении, которое отфильтровывает элементы, срок действия которых истек и которые должны быть удалены.
  3. Создайте собственную программу очистки TTL, которая периодически считывает и удаляет элементы из DynamoDB.

Почему AWS не удаляет элементы немедленно на основе TTL?

Satchit Desai 15.04.2024 14:42

Потому что это бесплатно и максимально возможно. Вы можете использовать EventBridge и легко удалять их на основе вашего собственного TTL, но тогда вам придется платить за удаление.

Leeroy Hannigan 15.04.2024 14:43

Я понимаю. Спасибо, что вернулись назад, я попробую, как это сделать, основываясь на ваших предложениях.

Satchit Desai 15.04.2024 14:46

Другие вопросы по теме