2014-09-19 84 views
1

我有一個使用Google Cloud SQL的App Engine應用程序,並且從我的應用程序中的一個頁面進行一些數據庫操作;無論何時訪問此頁面,都無法執行所有數據庫操作。當我去控制檯時,我看到的全部是/_ah/queue/__deferred__/_ah/queue/__ deferred__在App Engine日誌中

我能夠在本地主機上沒有任何問題的情況下運行該應用程序,因此代碼沒有錯誤,但是,在部署雲之後會出現問題。

說明:我的代碼中沒有使用任何隊列。

什麼是/_ah/queue/__deferred__出現在App Engine日誌中的實際原因是什麼?

回答

0

除非您指定了隊列名稱,否則所有延遲任務都會進入「默認」任務隊列。從那裏,你可以重新運行,如果你在本地開發服務器(調試模式),你可以通過代碼。

+0

固定過濾器或更換過濾網址圖案我沒有使用任何地方的隊列在我的代碼,那麼爲什麼App Engine是推動操作隊列,當我真正看到隊列當這出現在日誌中,沒有隊列,我的數據庫操作失敗 – 2014-11-21 13:18:28

3

我有類似的問題。我發現,在我的過濾器之一是爲每一個進來的連接打開會話:

httpRequest.getSession(true); 
//or the one below - both opens a valid HTTP Session 
httpRequest.getSession(); 

和我的AppEngine-web.xml中配置爲存儲會話異步

<sessions-enabled>true</sessions-enabled> 
<async-session-persistence enabled="true"/> 

這有導致在默認隊列中創建了很多任務,並且每個人都嘗試存儲空會話。爲了避免這種情況,請確保您只在正確的請求中打開會話。無論是在你的的web.xml

+0

在我的appengine-web.xml中,我沒有設置。我只啓用了會話。 – 2015-01-05 08:15:41

相關問題