У меня есть сеанс входа в систему, действующий в течение 5 минут с момента последнего действия. Если есть какое-либо действие, я обновляю атрибут времени жизни в элементе, добавляя 5 минут, в противном случае он должен быть удален во время, установленное в «expireAt». Но почему элемент в dynamoDB не удаляется в соответствии со сроком жизни, установленным в элементе «expireAt»?
В Java Spring-Boot я установил время EPOCH в секундах, как указано в документации login.setExpireAt((System.currentTimeMillis() / 1000) + 300);
. Он не удаляет элемент в таблице через 5 минут. Какой альтернативный подход я могу использовать, чтобы обойти эту проблему?
Но почему элемент в dynamoDB не удаляется в соответствии со сроком жизни, установленным в элементе «expireAt»?
DynamoDB TTL работает максимально эффективно, поскольку обеспечивает бесплатное удаление вашей таблицы. Если срок действия вашего элемента истек, то в конечном итоге он может быть удален, но в будущем это может занять несколько минут/часов/дней. Если вам нужны более строгие удаления, у вас есть несколько вариантов:
Потому что это бесплатно и максимально возможно. Вы можете использовать EventBridge и легко удалять их на основе вашего собственного TTL, но тогда вам придется платить за удаление.
Я понимаю. Спасибо, что вернулись назад, я попробую, как это сделать, основываясь на ваших предложениях.
Почему AWS не удаляет элементы немедленно на основе TTL?