有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java GAE为任务队列数据存储调用获取大量CancellationException

我有一个运行TaskQueue作业的JavaGAE实例。在过去的48小时里,我收到了很多CancellationException错误(24小时内大约36个)

该错误总是发生在对特定表的数据存储查询中。查询位于索引列projectId上,查询是复合OR(即projectId=-1或projectId=23)。整个表有96条记录,任何一个查询最多只能收回20条记录

有人知道我为什么会遇到这些问题吗

谢谢 保罗

更新:对不起,我的错误,这不是任务队列调用的一部分,而是设置任务队列调用的代码。通话时间平均约为59.5秒(感谢Alex指出这一点)。查看跟踪(感谢Alex),延迟似乎出现在数据存储调用中。它可以快到21ms或超过59000ms,这是很长的一段时间。我只是再次检查了日志,在过去24小时内没有出现任何异常,因此这可能是48小时的小故障


共 (1) 个答案

  1. # 1 楼答案

    Understanding "CancellationException: Task was cancelled" error while doing a Google Datastore query

    基于这个问题,听起来好像CancellationException意味着任务队列作业必须完成执行的10分钟超时

    您的日志是否显示这些请求在抛出异常之前运行了多长时间(例如,stackdriver显示此延迟任务运行了902ms)

    enter image description here

    查询一个包含96条记录的表应该可以,但是如果不能够看到任务的代码是什么样子,就很难确定

    你可以把任务分成更小的“子任务”,让子任务在返回前启动下一个子任务

    编辑:您也可以尝试到这里https://console.cloud.google.com/traces/traces查看您的请求在哪里花费时间的详细信息

    enter image description here