У меня есть типичный API REST-ful, выполняющий операции CRUD на DynamoDB, обслуживаемый веб-сервером Python, написанным на Fla sh и Boto3. Моя функция get_list выглядит так:
def list_items():
table = dbh.Table(table_name)
response = table.scan(ConsistentRead=True)
return { "items": response["Items"] }
А также обновление, которое выглядит так:
def update_item (item_id):
table = dbh.Table(table_name)
input_json = request.get_json()
table.put_item(Item = {
"uuid": str(item_id),
"data":input_json
})
return {}
Мое веб-приложение вызывает конечную точку API для update_item
, ожидая завершения и затем немедленно вызывает конечную точку API для list_items
, когда она получает возвращаемое значение от update_item
. list_items
использует ConsistentRead
, что, как я ожидал, подождет до завершения предыдущих записей. Но в списке предметов постоянно отсутствуют новые обновления. Призыв к списку предметов через несколько секунд дает полное обновление. Как я могу гарантировать, что, если я вызову эти конечные точки API, я получу самые свежие результаты? Или, если я не могу, как мне структурировать свое веб-приложение так, чтобы при редактировании элемента я мог видеть обновления, не спя произвольное количество времени после обновления?