У меня есть случай, когда мы делаем выбор в домене, например:
select * from mydomain where some_val = 'foo' and some_date < '2012-03-01T00:00+01:00'
При повторении результатов этого запроса - мы выполняем некоторую работу, затем обновляем строку и устанавливаем в поле some_date
текущую дату / время. Отмечая, что он обработан.
Вопрос, который у меня возникает, будет ли разрывать запрос nexttoken, когда он возвращается к simpledb для получения следующего набора записей? Когда он вернется, чтобы получить следующий пакет - у всех из первого пакета теперь будет some_date со значением, которое больше не находится в пределах исходного диапазона запроса.
Я не знаю, как реализован следующий токен, чтобы узнать, является ли он просто указателем на следующий элемент или это смещение, которое может «пропустить» целую партию записей.
Так что, если мы получили 3 записи одновременно, и у меня было это в моем домене:
record 1, '2012-01-12T19:20+01:00'
record 2, '2012-02-14T19:20+01:00'
record 3, '2012-01-22T19:20+01:00'
record 4, '2012-01-21T19:20+01:00'
record 5, '2012-02-22T19:20+01:00'
record 6, '2012-01-20T19:20+01:00'
record 7, '2012-01-18T19:20+01:00'
record 8, '2012-01-17T19:20+01:00'
record 9, '2012-02-12T19:20+01:00'
Мое первое исполнение я бы получил: запись 1, 2, 3
Если бы я установил для их поля some_date
значение: '2012-03-12T19:20+01:00'
перед возвратом для пакета следующего токена - запрос на следующий токен вернул бы 4,5,6
? Или он вернет 7,8,9
(потому что токен был настроен на начало 4-й записи, а теперь 1,2,3
больше не находится в наборе результатов).
Если это важно - мы используем библиотеку boto (python).