【问题标题】:Is 'Run Now' button broken on Google App Engine Task Queue?Google App Engine 任务队列上的“立即运行”按钮是否损坏?
【发布时间】: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 小时后到期之前不会重试(因为我使用的是基本缩放,而不是自动缩放)。如果任务已经在运行,我只是不知道为什么会给我一个“立即运行”按钮。

标签: java google-app-engine


【解决方案1】:

正如我在对原始帖子的评论中所怀疑的那样,该任务实际上仍在运行。由于它是一个多线程任务,它实际上是一个产生了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 取消了任务,它就会开始重试该任务,这样我就可以重新开始工作了。

【讨论】:

    猜你喜欢
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 2011-04-29
    相关资源
    最近更新 更多