我们有两个AppEngine(Java)应用程序。其中一个使用URLFetch来创建约会。在接收器中,我们添加了一项功能,我们使用Channel API来查看是否有任何开放频道,并让他们了解新数据。SocketTimeoutException使用URLFetch发送通道消息的服务
URLFetch调用失败,返回SocketTimeoutException。接收器中的所有代码都被执行(包括被通知的所有开放通道),但调用应用程序仍然会收到SocketTimeoutException。当我注释掉频道通知行时,没有错误。
这只发生在已部署的应用程序中,而不是在开发模式下。另外,这个调用并没有达到URLFetch允许的60秒(甚至是10秒)超时。
我们不可能在没有看到代码和堆栈跟踪的情况下提供帮助。 – 2012-01-13 03:52:10
我会整理一个样本,但我们已经解决了它。不是直接通知通道,而是将请求发送到任务队列。此队列执行相同的操作,但不返回SocketTimeoutException。无论如何,原来只是一个标准的servlet,最后调用ChannelServiceFactory.getChannelService().sendMessage。 – 2012-04-29 12:57:25
它必须是特定于您的应用程序的东西 - 绝对不是不可能从一个应用程序到另一个应用程序进行urlfetch! – 2012-04-30 05:16:32