java - 多次获取 GAS 导致句柄无效

标签 java google-app-engine

当我使用相同的查询参数执行多个同步请求时,GAE 遇到了问题。

我的查询:

Query<Movimentacao> q = ofy().query(Movimentacao.class).ancestor(ANCESTOR_KEY);
        q.filter("codStatus =", MyEnum.ENVIADO);
        q = q.order("datMovRegistrada").limit(1);
        return q.get();

经过几次通话后,我收到此错误:

Caused by: java.lang.IllegalArgumentException: invalid handle: 5736689025196469674
    at com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:45)
    at com.google.appengine.api.datastore.DatastoreApiHelper$AsyncCallWrapper.convertException(DatastoreApiHelper.java:74)
    at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:96)
    at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:88)
    at com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:75)
    at com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:35)
    at com.google.appengine.api.datastore.BaseQueryResultsSource.getIndexList(BaseQueryResultsSource.java:152)
    at com.google.appengine.api.datastore.BaseQueryResultsSource.loadMoreEntities(BaseQueryResultsSource.java:181)
    at com.google.appengine.api.datastore.BaseQueryResultsSource.loadMoreEntities(BaseQueryResultsSource.java:164)
    at com.google.appengine.api.datastore.QueryResultIteratorImpl.ensureLoaded(QueryResultIteratorImpl.java:147)
    at com.google.appengine.api.datastore.QueryResultIteratorImpl.hasNext(QueryResultIteratorImpl.java:64)
    at com.googlecode.objectify.util.TranslatingIterator.hasNext(TranslatingIterator.java:29)
    at com.googlecode.objectify.impl.QueryImpl.get(QueryImpl.java:389)
    at br.com.sulamerica.susis.mecsas.web.model.repositorio.MovimentacaoRepositoryImpl.getMovimentacaoSincronia(MovimentacaoRepositoryImpl.java:153)
    at br.com.sulamerica.susis.mecsas.web.service.ManutencaoMovimentacaoServiceImpl.retornaMovimentacaoFila(ManutencaoMovimentacaoServiceImpl.java:1532)
    at br.com.sulamerica.susis.mecsas.web.controller.TaskQueueController.recuperaMovimentacao(TaskQueueController.java:126)

Aby 认为为什么会发生这种情况?

我正在使用 Objectify 3.1。

谢谢!

最佳答案

我不知道“无效句柄”是什么意思,但我确实注意到您发布的代码中的 q.filter(...) 不是一个赋值。它需要像其他一样 q = q.filter(...)

我无法判断这是一个拼写错误还是一个真正的问题。

关于java - 多次获取 GAS 导致句柄无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28814891/

相关文章:

google-app-engine - 在 App Engine 中处理架构迁移

具有自定义 ClassLoader 和 FileManager 的 JavaCompiler

java equal 和 == 混淆

java - 线程 "main"java.lang.NoClassDefFoundError : org/json/JSONObject 中的异常

java - 多个 Activity 上的 Android 抽屉导航

google-app-engine - Google Push-To-Deploy 管道 - 单元测试因模块导入错误而失败

python - 需要帮助找出此 UnicodeDecodeError 的解决方案

android - 模拟器无法连接到 Google App Engine 开发服务器

google-app-engine - Google Cloud 一键部署延迟?

java - 我可以在自定义过滤器中使用@Autowired吗