Этот вопрос связан с одним старым сообщением «Как бы вы спроектировали хранилище данных AppEngine для такого социального сайта, как Twitter?» (/1105749/kak-by-vy-razrabotali-hranilische-dannyh-appengine-dlya-takogo-sotsialnogo-saita-kak-twitter).
Метод, описанный в «Построении масштабируемых, сложных приложений на App Engine (pdf), предоставленных в Google I / O Бреттом Слаткиным», упоминался в посте выше. Насколько я понимаю, эффективно получать новые твиты от подписчиков, за которыми вы только что следили, но вы не можете эффективно проверять их старые твиты.
Я хотел бы знать, как я могу показать следующие старые твиты после того, как только что добавил Эти старые твиты не включили меня в список получателей. У меня есть только два варианта:
1. делать запросы для каждого нового и сортировать старые твиты по дате?
2. добавить себя во все старые списки получателей твитов
Оба варианта очень дороги и занимают много времени.
В твиттере и Google+, когда вы добавляете новые подписки, старые твиты всех новых подписчиков будут немедленно отображаться в моей временной шкале / ленте. По крайней мере, есть способ выполнить эту функцию.
Надеюсь, это прояснит мой вопрос. Ответы на этот вопрос могут быть полезны.
Опять же, есть ли лучший способ сделать это?
Edit -
Я нашел сообщение в группе движков приложений, которое значительно улучшит вариант 1.
Обход объединений / запросов
Используя оператор IN, я могу запустить 30 совпадений за 30 следующих. Если бы я только добавил 900 подписок, мне нужно 30 партий. но db.get_by_key_name () может запускать больше совпадений без ограничения 30.
Мы можем создавать ежедневные сводные сущности с ключевым именем userid_date и списком идентификаторов твитов и временных отметок. Если я хочу проверить старые твиты с прошлой недели, я составлю список имен пользователей user1_Mon-date, user1_Tues-date, user1_Wen-date .... use1_Sun-date ..., user900_Mon-date, user900_Tues-date, user900_Wen-date .... use900_Sun-дата. Я могу получить 900 * 7 макс. суммирует aync и сортирует твиты по дате, а затем использует другую функцию get sync для получения отсортированного контента твитов.