【问题标题】:Google App Engine Process Terminated (Error Code 123)Google App Engine 进程终止(错误代码 123)
【发布时间】:2016-05-26 23:07:37
【问题描述】:

我见过很多人有这个问题。

Process terminated because the request deadline was exceeded. (Error code 123)

是否有人知道可能导致此问题的原因?我增加了我们项目的实例。我尽可能减少了数据库连接,如果连接失败,我确保捕获它并关闭我的连接。

收到此错误的某些请求需要超过 60 秒的时间,我达到了 App Engine 标准的限制,但并非所有请求都这样做。 3 - 10 秒时出现一些错误。

谢谢

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    其中一些请求可能会超时,因为这些请求在队列中等待您的应用程序的时间过长。其中一些可能是loading requests,您可以通过installing a warmup handler 修复它,它会在用户请求到达之前加载您的应用程序。

    另一种可能导致请求在队列中花费大量时间的可能性是,如果您有 threadsafe 的值(如果您使用的是 Twisted 或 NDB 等异步框架,请使用 threadsafe: true)或 max_concurrent_requests不要反映您的应用程序的行为。 max_concurrent_requests 应该大致等于 Python 中的(响应时间/cpu 响应时间);默认值为 8,但如果您的请求主要是同步请求,则可能需要将其设置得更低。

    【讨论】:

    • 更多关于加载请求的细节在这里:bjk5.com/post/40833194761/…
    • 我在某处读到,队列中某个超时的请求将收到与关闭实例的请求相同的 500 服务器错误。所以我想我理解你的第一部分。我们正在使用预热处理程序和threadsafe: true。目前,我们仅将max_concurrent_requests(设置为 10)用于我们的任务队列,这些任务队列很少用于发送给我们的客户电子邮件(每天少于 200 条左右)。我可以为我们的实例编辑max_concurrent_requests 设置吗?
    【解决方案2】:

    此处记录了各种超出期限的错误:https://cloud.google.com/appengine/articles/deadlineexceedederrors

    并非所有的截止日期都是一样的!

    当一个请求超过期限时,它会导致 进程 停止,这将中断并导致同一实例上的所有其他请求也失败。您会在日志查看器中看到这些请求的 104。

    【讨论】:

    • 好的。这是有道理的,所以这一定不是问题,因为我只收到 123 个错误而不是 104 个错误
    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2015-09-03
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多