2012-06-25 43 views
0

當我嘗試從我的應用程序中的拉隊列中租用任務時,出現下面的錯誤。這在我的代碼之前沒有發生過,所以有些事情已經改變了。我懷疑這是一個線程問題 - 這些調用是在一個單獨的線程中創建的(使用ThreadManager.createThreadForCurrentRequest創建的) - 最近是否被禁止?獲取錯誤租賃任務

uk.org.jaggard.myapp.BlahBlahBlahRunnable run: Exception leasing tasks. Already tried 0 times. 
com.google.apphosting.api.ApiProxy$CancelledException: The API call taskqueue.QueryAndOwnTasks() was explicitly cancelled. 
    at com.google.apphosting.runtime.ApiProxyImpl.doSyncCall(ApiProxyImpl.java:218) 
    at com.google.apphosting.runtime.ApiProxyImpl.access$000(ApiProxyImpl.java:68) 
    at com.google.apphosting.runtime.ApiProxyImpl$1.run(ApiProxyImpl.java:182) 
    at com.google.apphosting.runtime.ApiProxyImpl$1.run(ApiProxyImpl.java:180) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.google.apphosting.runtime.ApiProxyImpl.makeSyncCall(ApiProxyImpl.java:180) 
    at com.google.apphosting.runtime.ApiProxyImpl.makeSyncCall(ApiProxyImpl.java:68) 
    at com.google.appengine.tools.appstats.Recorder.makeSyncCall(Recorder.java:323) 
    at com.googlecode.objectify.cache.TriggerFutureHook.makeSyncCall(TriggerFutureHook.java:154) 
    at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:105) 
    at com.google.appengine.api.taskqueue.QueueApiHelper.makeSyncCall(QueueApiHelper.java:44) 
    at com.google.appengine.api.taskqueue.QueueImpl.leaseTasksInternal(QueueImpl.java:709) 
    at com.google.appengine.api.taskqueue.QueueImpl.leaseTasks(QueueImpl.java:731) 
    at uk.org.jaggard.myapp.BlahBlahBlahRunnable.run(BlahBlahBlahRunnable.java:53) 
    at com.google.apphosting.runtime.ApiProxyImpl$CurrentRequestThreadFactory$1$1.run(ApiProxyImpl.java:997) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.google.apphosting.runtime.ApiProxyImpl$CurrentRequestThreadFactory$1.run(ApiProxyImpl.java:994) 
    at java.lang.Thread.run(Thread.java:679) 
    at com.google.apphosting.runtime.ApiProxyImpl$CurrentRequestThreadFactory$2$1.run(ApiProxyImpl.java:1031) 

回答

0

我懷疑在你的應用程序日誌中的警告將包含 「線程被中斷,拋出CancelledException。」 Java's InterruptedException在 http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html 和「Java併發實踐」一書中討論。

+0

雖然我沒有收到'InterruptedException'並且沒有關於它的警告,否則這是問題,因爲我在Dev服務器上遇到了'InterruptedException'。然而,這並沒有回答這個問題 - 爲什麼Google App Engine在每次調用'leaseTasks'時都拋出這個異常? – mjaggard