Как удалить OTP в Dynamodb через определенные минуты (2 минуты) - PullRequest
0 голосов
/ 11 января 2019

Я использовал функцию тайм-аута setImmediate, передав в нее функцию deleteOTP и детали пользователя OTP, которые необходимо удалить. Я сталкиваюсь с проблемами с передачей аргумента (userId) функции deleteOTP в setImmediate. оценены.

var update = setImmediate(deleteOTP,10000,userId);

function deleteOTP(Id) {
        var params = {
            Key: {
                "id": {
                   S: Id
               }
            },
            UpdateExpression: "set otp=:x",
            ExpressionAttributeValues: {
                ":x": { S: "null" },
            },
            TableName: tableName
        };

        dynamodb.updateItem(params, function (err, data) {
            if (err){
                console.log(err, err.stack); // an error occurred
            } 
            else{
                console.log(data)
                return data
            } 
        })
    }

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Как удалить OTP в Dynamodb через определенные минуты (2 минуты)

DynamoDB позволяет установить TTL (Time To Live) для документа, который по сути является истечением срока действия документа. Здесь вы можете установить ttl на 2 минуты в будущем во время записи OTP в DynamoDB. Таким образом, через 2 минуты документ будет помечен как просроченный и в конечном итоге будет удален.

Цитирование из документации DynamoDB TTL

Когда Time To Live включен для таблицы, фоновое задание проверяет атрибут TTL элементов, чтобы определить, не истек ли срок их действия.

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

0 голосов
/ 11 января 2019

Вы делаете неверный идентификатор консоли.

пользователь typeof(Id) вместо typeof(id)

ниже рабочий код для печати идентификатора

var update = setImmediate(deleteOTP,1000,3);

function deleteOTP(Id) {
  console.log("ID ===>",typeof(Id))
  console.log("ID ===>",Id)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...