在GAE / J中避免DeadlineExceededException的技巧?

时间:2009-10-01 18:27:01

标签: java google-app-engine httpwebrequest twitter

我正在开发Google App Engine / Java中的Twitter4J Web应用程序。

我需要显示两个列表。一个是Twitter好友,另一个是粉丝。带照片和屏幕名称。

对于拥有20-30名粉丝和朋友的人来说,这样做很好。但当我尝试拥有150多名粉丝和朋友的用户时,它给了我DeadlineExceededException

如果网络请求的时间超过30秒,则GAE会抛出此异常。

那么我可以采用哪些技术来避免这种异常。

我应该为每个列表生成两个AJAX调用。页面加载后。这样每个电话都有30秒的限制吗?

或者你还有什么想法?我已经离开了。

请帮忙。

1 个答案:

答案 0 :(得分:2)

不确定您是否打算一次查询所有关注者/朋友(无论如何,对于拥有大量关注者/朋友的人来说,Twitter api速率限制会出现问题)。因此,我假设您在Twitter api中查询有限数量的关注者/朋友,并使用Twitter分页获取更多内容以显示。

我的解决方案是,而且我为Twitter实现的是从浏览器中执行状态/朋友和状态/关注者。这可以通过JavaScript添加html< script>来实现。标记状态url和浏览器中的回调函数。这绕过GAE作为代理。这不仅避免了GAE的超时问题,还减少了GAE中的呼叫/ cpu-time数量,这意味着如果你的应用程序扩展,它将比免费的GAE限制更便宜。