Что такое шаблон для отслеживания текущих пользователей в Google App Engine? - PullRequest
1 голос
/ 23 июня 2010

Каждый из моих пользователей опрашивает сервер каждые несколько секунд.Мне нужно, чтобы список пользователей, опрошенных за последние 30 секунд, был под рукой для задачи, которую я ставлю в очередь каждые несколько секунд.

Очевидный способ сделать это - обновить запись в хранилище данныхкаждый раз, когда пользователь опрашивает и запрашивает записи, которые имеют метку времени в течение последних N секунд в моей очереди задач.Я не могу себе представить такое масштабирование.

Любые рекомендации?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 июня 2010

Я тестировал записи для небольших объектов со скоростью около 1/20 секунды каждая.Если вы основываете ключ ваших объектов опроса на уникальном значении, связанном с пользователем, вы можете получить доступ к объектам опроса по ключу, когда обновите их, что является очень быстрым хешем вместо поиска.

Запись должна быть в порядке, если вам не нужно одновременно писать в сущности (что, как вам кажется, делать не нужно, поскольку у вас есть одна для каждого пользователя).Просто убедитесь, что вы не помещаете объекты опроса в одну и ту же группу объектов, если вы сделаете это, запись в одну из них замерзнет все остальные во время записи.

Вы можете запросить все объекты опроса, которые были обновлены за последние 30 секунд, это чтение и должно быть быстрым.

0 голосов
/ 23 июня 2010

Наличие одного объекта хранилища данных на пользователя и обновление его с текущим временем каждый раз, когда они опрашивают, должно работать нормально - хотя это, конечно, добавит небольшую задержку для каждого пользовательского запроса.

...