Java 应用程序引擎在任务突发期间中止请求错误

Java 应用程序引擎在任务突发期间中止请求错误,java,performance,google-app-engine,Java,Performance,Google App Engine,我有一个问题,关于任务失败消息,我得到了应用引擎,同时处理大量的任务 错误如下: 在等待太长时间无法尝试服务您的请求后,请求被中止 我的服务配置如下: <threadsafe>false</threadsafe> <runtime>java8</runtime> <system-properties> <property name="appengine.api.urlfetch.defaultDeadline" valu

我有一个问题,关于任务失败消息,我得到了应用引擎,同时处理大量的任务

错误如下:

在等待太长时间无法尝试服务您的请求后,请求被中止

我的服务配置如下:

<threadsafe>false</threadsafe>
<runtime>java8</runtime>

<system-properties>
    <property name="appengine.api.urlfetch.defaultDeadline" value="${urlfetch.deadline.override}"/>
    <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>

<instance-class>F2</instance-class>
<automatic-scaling></automatic-scaling>
false
爪哇8
地上二层
在这件事上能产生积极的影响吗


感谢您的帮助:)

Japa应用程序的实例启动时间往往较长,这可能在您的场景中扮演着重要角色

需要考虑的事项:

  • 检查您的队列配置,确保它不是导致任务处理瓶颈的队列配置
  • 启用多线程(在配置中使用
    true
    ),前提是您的应用程序能够容忍(并非总是可能)。或者,如果这个特定的任务处理程序是/可以是线程安全的,那么可以将其拉入一个单独的服务中,并使其成为多线程的。这将允许一个实例同时处理多个任务,减少所需的实例数量,从而降低实例启动时间的影响
  • 启用/增加备用/驻留/空闲实例的数量(使用scaling配置元素)-这些实例旨在处理临时请求峰值,直到GAE启动新的动态实例来处理流量增加(这需要一些时间,包括实例启动时间),另请参阅
  • 及时错开任务以避免出现过于突然的任务高峰,使用/或通过,这将减少这些任务在队列中花费的有效时间,使GAE有机会启动足够的实例来处理它们

您对应的任务队列配置是什么?您是否能够确定“太长”的实际含义?也许在请求中添加一个应用程序日志,使任务排队,并检查从该日志到出现所述错误的时间增量?在示例
appengine web.xml
中,您使用
false
,同时使用并发性。根据,不建议这样做。按照此处的建议进行操作,并检查如何实现并发性。让我们知道这是否有帮助谢谢,这真的很有帮助。实际上,我已经通过处理最大并发请求、目标吞吐量利用率和最小&最大挂起延迟来解决了这个问题,因为实例上的请求太多会导致内存问题。