2012-06-25 4 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 обсуждается в http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html и книге «Java Concurrency in Practice».

+0

Хотя я не получаю 'InterruptedException' и не имею никаких предупреждений об этом, вы правы, что это проблема, потому что я получаю' InterruptedException' на сервере Dev. Однако это не отвечает на вопрос - почему Google App Engine выбрасывает это исключение при каждом вызове 'leaseTasks'? – mjaggard

Смежные вопросы