Методы, чтобы избежать DeadlineExceededException в GAE / J? - PullRequest
1 голос
/ 01 октября 2009

Я занимаюсь разработкой веб-приложения Twitter4J на Google App Engine / Java.

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

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

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

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

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

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

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

1 Ответ

2 голосов
/ 05 октября 2009

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

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

...