gpt4 book ai didi

java - 使用 URLFetch 发送 channel 消息的服务时出现 SocketTimeoutException

转载 作者:行者123 更新时间:2023-12-02 09:39:40 24 4
gpt4 key购买 nike

我们有两个 AppEngine (Java) 应用程序。其中一个使用 URLFetch 到另一个来创建约会。在接收器中,我们添加了一项功能,使用 Channel API 来查看是否有任何开放的 channel 并让他们知道新数据。

URLFetch 调用失败并出现 SocketTimeoutException。接收器中的所有代码都会执行(包括所有被通知的打开 channel ),但调用应用程序仍然会收到 SocketTimeoutException。当我注释掉 channel 通知行时,没有错误。

这种情况仅发生在已部署的应用程序中,而不是在开发模式下。此外,该调用还没有达到 URLFetch 允许的 60 秒(甚至是旧的 10 秒)超时。

最佳答案

urlfetch 的默认截止时间是 5 秒,因此如果您的应用程序加载和执行处理程序的时间超过 5 秒,它将返回 SocketTimeoutException

documentation 中所述,您可以使用 setConnectTimeoutsetReadTimeout 为 urlfetch 调用设置更长的截止时间

此外,最好将可延迟的 api 调用(即不需要构建 http 响应)移至 task queue :

  • 任务队列请求的截止时间更长(10 分钟,而不是 60 秒)
  • 如果失败,任务将重试
  • urlfetch 超时时间也更长(10 分钟)

关于java - 使用 URLFetch 发送 channel 消息的服务时出现 SocketTimeoutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8844972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com