2013-09-22 62 views
1

我有一个在GAE和测试服务器上运行良好的应用程序,直到前几天。它连接到远程站点,登录并浏览页面并自动输入信息。远程站点使用动态URL来跟踪会话,每个页面都会提供下一个呼叫的链接。 该程序是非常基本的:urllib2.urlopen然后regexp提取下一个url键然后新的调用urllib2.urlopen等。Python App Engine的urllib2:在本地工作,但在部署到GAE时不工作

现在我的应用程序在测试服务器上仍能正常工作,但在GAE上部署时失败:我有一系列对urllib2.open的调用,大多数情况下,远程站点说它已经在第二次调用时丢失了会话但是10/10我可以去第三次通话,一次GAE成功通过第四次通话。

这似乎指出,它不是远程站点(它没有改变)的安全问题,也不是我在其他帖子中读到的重定向和cookie的问题。

用户向我报告,它运行良好,直到9月13日为止,并在20日向我报告失败。最近在GAE中对URLfetch的处理有了改变吗?

我刚刚在这个问题上花了2天时间,没有任何切实的线索。

这可能是一个IP地址的问题?远程服务器可以通过IP地址和dynamicURL一起控制会话,我可以想象GAE不会保证在对GAE的同一个调用中,所有对URLlib的调用都由同一台机器处理?这可以解释为什么有时它适用于两个或三个连续的URL。我不了解足够的GAE内部机制来确认。

非常感谢您的建议。

回答

0

我们不保证urlfetch调用将全部在同一个IP地址上。

+0

谢谢。 URLFetch最近会改变它的工作方式吗?我已经同时转向了一个薪水报价,这可以解释一下吗? – frank

+0

我建议检查一下运行远程服务器的人,看看他们是否使用IP地址获得会话关联。你可能刚刚不幸没有碰到我们以前的不担保。 –

+0

我在过去不时有些麻烦,但似乎9/10的提取是在同一台服务器上完成的(在序列的短时间内),现在只有获取不同服务器的机会是9 10日(在相同的短期内)。我知道我应该使用其他服务来获得保留在同一台服务器上的保证。非常感谢你的知识。 – frank

相关问题