我們有兩個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