java - App Engine SearchAPI : java. util.concurrent.CancellationException:任务已取消

标签 java google-app-engine full-text-search

我的一些 App Engine Search API 查询出现“java.util.concurrent.CancellationException:任务已取消”异常。该错误是可重现的。

我有多个索引。在某些索引上,这些查询会运行,而在其他索引上,它们会失败。 该查询非常基本。如果我从管理控制台( https://console.cloud.google.com/appengine/search/index )运行它,它不会出现任何问题。 该查询没有什么特别的。

查询对 2 个原子字段进行过滤:isReliable = "1"AND MarkedForDelete = "0",并对数字字段进行排序。

代码似乎没有任何问题,因为它运行许多此类查询都没有问题,比失败的查询要困难得多。

最佳答案

我见过这样的由超时限制引起的异常。如果您在应用程序后收到日志,请检查日志。相同的执行时间(例如 59-60 秒)。

如果这不是面向用户的请求,您可以将其移至任务中,该任务的执行限制为 10 分钟。如果这是面向用户的请求,则可能需要对数据模型进行一些更改。例如,您可以将一些字段组合到常用查询的标志中,例如isReliable = "1"AND MarkedForDelete = "0"变为 code = "10"或 "reliableToDelete = "true"。

关于java - App Engine SearchAPI : java. util.concurrent.CancellationException:任务已取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38715343/

相关文章:

python - 向现有模型添加一些模型引用

python - Appengine 推送队列任务状态

json - Google 应用引擎、ndb 和 Json

java - 全文搜索类似

sql - 在创建 tsquery 之前我应该​​从字符串中删除冒号吗?

java - android-Java- 将 WeakReference<Bitmap> 转换为普通位图

java - 转换扩展相同原始类的子类

java - Log4j 单例包装器的好处?

java - 如何验证给定类的特定构造函数是否被调用?

mysql - 使用建议单词而不是结果的 MySQL 全文搜索自动完成