2012-07-06 48 views
1

我想強制PHP永遠不會嘗試連接並通過 一段時間發送信息到web服務。我在下面使用,由於某種原因,它會在允許的時間內運行,我無法弄清楚爲什麼。例如,如果我將其設置爲30秒,則會發現在某些情況下需要更長的時間。如果時間太長,我需要找出100%終止連接的方法。PHP超時無法在webservice上工作

TIA, 威爾

 
    $intTimeout = $this->getTimeout(); 
     $client = new SoapClient("{$this->url}?WSDL", array('trace' => 0, 'connection_timeout'=>$intTimeout)); 
     try { 
      $this->response = $client->someService($objPerson); 
     } 
     catch(Exception $e) { 

     } 
     $this->restoreTimeout(); 
 

    function getTimeout() 
    { 
     $intTimeout = @$this->timeout ? $this->timeout : 60; 
     $_SESSION['old_sock'] = ini_get('default_socket_timeout'); 
     ini_set('default_socket_timeout', $intTimeout); 

     return $intTimeout; 
    } 

    function restoreTimeout() 
    { 
     $intCurSockTime = @$_SESSION['old_sock']; 
     if($intCurSockTime) ini_set('default_socket_timeout', $intCurSockTime); 
    }

回答

相關問題