2009-10-01 1 views
1

Я разрабатываю веб-приложение Twitter4J в Google App Engine/Java.Методы, чтобы избежать DeadlineExceededException в GAE/J?

Мне нужно показать два списка. Один из них - друзья Twitter, а другие - последователи. С фотографией и названием экрана.

Он отлично работает для людей, у которых есть 20-30 последователей и друзей. Но это дало мне DeadlineExceededException, когда я попробую пользователя, у которого есть еще 150 последователей и друзей.

GAE выбрасывает это исключение, если веб-запрос занимает время более 30 секунд.

Итак, какие методы я могу принять, чтобы избежать этого исключения.

Должен ли я генерировать два вызова AJAX для каждого из моих списков. После загрузки страницы. Чтобы каждый вызов имел свой лимит в 30 секунд?

Или что еще вы думаете? Я ушел, сделай это.

Пожалуйста, помогите.

ответ

2

Не уверен, что вы намерены запросить всех последователей/друзей сразу (это было бы проблемой с лимитом ставок api для Twitter для людей с очень большим количеством последователей/друзей). Поэтому я предполагаю, что вы запрашиваете Twitter api для ограниченного числа последователей/друзей и используете пейджинг Twitter, чтобы получить больше по мере необходимости, чтобы показать.

Мое решение было бы, и это тоже то, что я реализовал для Twitter, - это делать статусы/друзей и статусы/последователей из браузера. Это можно сделать с помощью JavaScript, добавив в браузер html < скрипт > со статусом url и функцией обратного вызова. Это обходит GAE как прокси. Это не только устраняет проблему тайм-аута в GAE, но и уменьшает количество вызовов/cpu-time в GAE, что означает, что это будет дешевле, если ваши приложения масштабируются выше свободного предела GAE.

+0

Благодаря Hilbrand за ваш ответ. Я думаю, вы говорите о передаче твита. Правильно? Поэтому, если я составляю URL-адрес, этот текст твита появится в текстовой области веб-сайта Twitter. И мой сайт не будет упоминаться как . Если я правильно вас пойму. –

+0

Нет, я имею в виду вызов временной шкалы. Это делается с помощью метода обратного вызова, см. Http://apiwiki.twitter.com/Things-Every-Developer-Should-Know#5Parametershavecertainexpectations. Проводка должна выполняться через прокси-сервер (GAE в вашем случае), потому что ограничения между доменами внутри браузера. При публикации через авию Twitter они появляются с вашим именем приложения. –

 Смежные вопросы

  • Нет связанных вопросов^_^