【发布时间】:2014-12-10 17:33:51
【问题描述】:
我在 Google App Engine 的任务队列中的任务在失败后没有像往常那样重试。所以我点击了“立即运行”按钮。 Google App Engine 似乎根本没有响应。其他人不久前遇到了这个问题(Tasks queue up, nothing happens on retry (no log)),他们清除了他们的任务队列来解决这个问题。我可以这样做,但我可以先尝试其他方法吗?
以下是我检查的一些内容:
1] 日志 - 在我按下“立即运行”后,日志中不会出现任何内容。
2] 重试次数过多? - 我不认为它超过了重试次数,因为任务队列界面没有显示任何重试发生。
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.。这是一个简单的重试应该能够解决的问题。但是重试没有发生。
那么,有什么线索吗?或者还有什么要检查的?
【问题讨论】:
-
你有多个模块吗?还是您使用非默认版本进行测试?
-
嗨@Greg,是的,我正在使用 2 个模块,并通过默认任务队列将任务从一个模块传递到另一个模块。
-
我有个理论:也许任务还在运行!我正在运行的任务是多线程的,它是引发异常的线程之一。也许主线程仍然坐在那里等待并且任务在 24 小时后到期之前不会重试(因为我使用的是基本缩放,而不是自动缩放)。如果任务已经在运行,我只是不知道为什么会给我一个“立即运行”按钮。