App Engine.Запрашивать каждую вторую минуту - PullRequest
1 голос
/ 31 марта 2011

В движке приложений Google я сохраняю данные датчиков, поступающие раз в минуту. Таким образом, за 24 часа это всего 1440 индивидуальных чтений. Это означает, что я столкнулся с максимальным пределом в 1000 результатов для всех запросов.

Если кто-то не покажет мне способ получить доступ ко всем 1440 показаниям в последовательном порядке, я согласен с этим прямо сейчас. Я хотел бы просто запросить 720 показаний или каждую минуту.

Показания хранятся в виде объекта DateTime, например 2011-03-24 02: 01: 00.

Как лучше написать этот запрос?

Я использовал:

day_start = datetime(2011, 03, 24)
day_end = day_start + timedelta(days=1)
readings = models.Log.all()
readings.filter('dateTime >=', day_start)
readings.filter('dateTime <', day_end)

Как бы я изменил это, чтобы запрашивать только каждую минуту?

Ответы [ 2 ]

0 голосов
/ 31 марта 2011

Вы можете получить все результаты, используя курсоры:

    q = parse.YourModel.gql(YourQuery)
    tlist = []
    tl = q.fetch(1000)
    cursor = q.cursor()
    while len(tl) > 0:
        tlist.extend(tl)
        q = parse.YourModel.gql(YourQuery)
        q.with_cursor(cursor)
        tl = q.fetch(1000)
        cursor = q.cursor()

tlist будет содержать все результаты вплоть до предела переменного размера (32 МБ).

0 голосов
/ 31 марта 2011

Вы также можете сделать что-то подобное, используя gql.

models.Log.gql("WHERE dateTime >= :1 AND dateTime  < :2", day_start,day_end)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...