我有一個在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內部機制來確認。
非常感謝您的建議。
謝謝。 URLFetch最近會改變它的工作方式嗎?我已經同時轉向了一個薪水報價,這可以解釋一下嗎? – frank
我建議檢查一下運行遠程服務器的人,看看他們是否使用IP地址獲得會話關聯。你可能剛剛不幸沒有碰到我們以前的不擔保。 –
我在過去不時有些麻煩,但似乎9/10的提取是在同一臺服務器上完成的(在序列的短時間內),現在只有獲取不同服務器的機會是9 10日(在相同的短期內)。我知道我應該使用其他服務來獲得保留在同一臺服務器上的保證。非常感謝你的知識。 – frank