我们有两个AppEngine(Java)应用程序。其中一个使用URLFetch到另一个创建约会。在接收器中,我们添加了一个功能,我们使用Channel API查看是否有任何开放频道,让他们知道新数据。
URLFetch调用因SocketTimeoutException而失败。执行接收器中的所有代码(包括所有通知的开放通道),但调用应用程序仍然会收到SocketTimeoutException。当我注释掉频道通知行时,没有错误。
仅在已部署的应用中发生,而不是在开发模式下。此外,该呼叫未接近达到URLFetch允许的60秒(甚至是旧的10秒)超时。
答案 0 :(得分:0)
urlfetch的默认截止时间是5秒,因此如果您的应用程序加载并执行处理程序需要5秒以上,它将返回SocketTimeoutException
。
如documentation所述,您可以使用setConnectTimeout
或setReadTimeout
此外,最好将可以延迟的api调用(即不需要构建http响应)移动到task queue: