我在Google App Engine的任务队列上的任务没有像通常那样失败后重试。所以我点击了“立即运行”按钮。谷歌应用引擎似乎只是没有响应。不久之前有人遇到过这个问题(Tasks queue up, nothing happens on retry (no log))并且他们清除了他们的任务队列以解决问题。我能做到这一点,但我还能先尝试一下吗?
以下是我检查的一些内容:
1]日志 - 按“立即运行”后,日志中没有任何内容。
2]重试次数太多? - 我认为它不会超过重试次数,因为Task Queue接口并不表示已经发生任何重试。
3]超过配额? - 不,我在发生错误时只使用了每日预算的7%,并且配额页面没有显示任何问题。
4]任务队列控制台中的“上一次运行”选项卡 - Tasks queue up, nothing happens on retry (no log)中提到了“上一次运行”选项卡,但这似乎不再存在。
5]新旧管理界面 - 对于上面提到的所有管理控制台屏幕,我检查了新的(console.developers.google.com)和旧的(appengine.google.com)界面。
6]日志中的线索? - 查看我的任务失败的日志,我没有看到任何关于为什么任务队列不会重试的线索。任务失败,因为它正在调用另一台服务器而且抛出java.net.SocketExceptionSocket operation timed out: The API call remote_socket.Receive() took too long to respond and was cancelled.
。这是一个简单的重试应该能够修复的东西。但重试并没有发生。
那么,有什么线索是怎么回事?还有什么可以检查?
答案 0 :(得分:0)
正如我在对原始帖子的评论中所怀疑的那样,任务实际上仍在运行。由于它是一个多线程的任务,它实际上是一个产生了java.net.SocketExceptionSocket
异常的衍生线程,它是主要的线程,只是无休止地等待子线程完成。
24小时后,Google App Engine取消了任务:com.google.apphosting.api.DeadlineExceededException: This request (eac8786ce44a6a02) started at 2014/12/10 00:57:07.139 UTC and was still executing at 2014/12/11 00:56:56.850 UTC
。
Google App Engine取消任务后,便开始重试该任务,以便重新开始营业。