2012-03-15 44 views
2

我正在使用LWP :: UserAgent與多個服務器上的webservices進行通信;一次聯繫一個服務器。每個響應可能需要30分鐘才能完成,因此我將LWP超時設置爲30分鐘。perl LWP:連接超時與請求超時不同

不幸的是,如果服務器根本無法訪問(例如,網絡服務器關閉),同樣的超時也適用。所以我的應用程序等待了30分鐘,這個服務器沒有運行。

是否可以設置兩個獨立的超時?

  1. 短一個,等待連接建立。
  2. 更長的一個,等待響應,一旦連接建立。

回答

0

如果服務器無法訪問,相同的超時不會「也適用」。超時選項工作在一個非常特殊的方式:如果連接到服務器上沒有任何活動是 超時秒觀察

請求被中止。這意味着 完整事務和request()方法實際返回所用的時間可能會更長,爲 。

只要數據被傳遞,超時將不會被觸發。您可以使用回調函數(請參閱文檔的REQUEST METHODS部分)來檢查數據傳輸的持續時間,並在需要時完全退出。

+0

問題是,如果服務器不可訪問,LWP仍然等待整個超時。 – spuelrich 2017-01-13 09:58:21