Google App Engine - 任务队列花费太长时间来启动随机任务

时间:2016-06-29 03:43:17

标签: python google-app-engine

我们的客户在我们的appengine python应用程序中遇到问题,需要任务队列处理来生成报告并在完成后立即显示。对于我们熟悉的GAE缓慢和超时的解决方法直到最近才对我们有效。

上周,我们开始抱怨用户需要等待报告的时间。过去最多只需要一分钟,但现在可能需要10分钟以上。

此外,我无法重现问题,但是查看任务队列,我可以看到这些任务根本没有开始。

Bellow是其中一个队列的屏幕截图(不是生成报告的队列,但问题出现在所有队列中)。

http://www.clipular.com/c/4829223501430784.png?k=QaP2kedZm6NcvrKzwVSJqq2YI1g

我们可以看到没有任务正在运行,但队列中的唯一任务在完成7分钟等待之后才开始。看看ETA,它预测任务应该从过去开始。最终它开始了,但为什么它没有早点开始呢?

我已经排除的理由:

  • 没有足够的资源或实例:即使在午夜之后,当我们收到一些请求时,它也会发生。
  • 错误的队列配置:不是这样,我们有各种各样的队列配置,然后它就会发生。例如,最大速率= 350 / s,存储桶大小= 400,最大并发= 400。

1 个答案:

答案 0 :(得分:0)

此问题在没有任何操作的情况下停止发生。显然,这是由于GAE服务器出现某种故障。问题持续了大约两个星期。

然而,可以将问题最小化的一个操作是将您的任务分散到不同的队列中。

---编辑---

它再次发生。我们唯一可以解决问题的方法是编写一个脚本,如果找到它们,它会不断要求运行后期任务。它通过tampermonkey在https://console.cloud.google.com/appengine/taskqueues上运行。