Я пытаюсь отобразить страницу, которая начинается с первых n объектов данной модели и регулярно проверяет наличие новых элементов на странице.Подобно тому, как, скажем, твиттер отображает страницу твитов, а затем запрашивает «6 новых твитов», когда они доступны.
В настоящее время я делаю это с помощью:
query = Item.all()
query.order("-created")
query.fetch(100)
cursor = query.cursor()
timestamp = time.time()
# render a page storing cursor and timestamp so it can request for older items
# & regularly check for newer ones.
Когда яПолучив запрос на обновления, с отметкой времени, я запускаю запрос, отфильтровывающий элементы до этой отметки времени.
Мне было интересно, есть ли способ сделать это следующим образом (и будет ли это быстрее):
- захватите курсор для начала, давайте назовем этот update_cursor
- выборку данных и т. Д. Как и прежде.
Когда страница запрашивает обновления (иобеспечивает update_cursor) выполнить тот же запрос, но с query.with_cursor(end_cursor=update_cursor)
и query.run()
вместо fetch (), чтобы он захватывал все элементы до точки, с которой я начинал ранее.
Я пытался получить 0объекты и посмотрите на курсор, но это просто дает мне пустую строку.
Возможно ли это (и, если это так, значительно быстрее, чем метод отметки времени)?Любые предложения или советы?