Author: pb
Date: Mon Nov 17 19:23:08 2008
New Revision: 3320

Log:
- fixed bug #013348: improvements to ezsolrbase::sendHTTPRequest

Modified:
    ezfind/ezp4/trunk/extension/ezfind/classes/ezsolrbase.php
    
ezfind/ezp4/trunk/extension/ezfind/doc/changelogs/2.0/unstable/CHANGELOG-2.0.0alpha1-to-2.0.0beta1
    ezfind/ezp4/trunk/extension/ezfind/settings/solr.ini.append.php
Modified: ezfind/ezp4/trunk/extension/ezfind/classes/ezsolrbase.php
==============================================================================
--- ezfind/ezp4/trunk/extension/ezfind/classes/ezsolrbase.php (original)
+++ ezfind/ezp4/trunk/extension/ezfind/classes/ezsolrbase.php Mon Nov 17 19:23:08 2008
@@ -318,6 +318,8 @@
     function sendHTTPRequest( $url, $postData = false, $contentType = '', $userAgent = 'eZ Publish' )
     {
         $connectionTimeout = $this->SolrINI->variable( 'SolrBase', 'ConnectionTimeout' );
+        $processTimeout = $this->SolrINI->variable( 'SolrBase', 'ProcessTimeout' );
+
 
         if ( extension_loaded( 'curl' ) )
         {
@@ -325,6 +327,8 @@
             curl_setopt( $ch, CURLOPT_URL, $url );
             curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
             curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $connectionTimeout );
+            curl_setopt( $ch, CURLOPT_TIMEOUT, $processTimeout );
+            //CURLOPT_TIMEOUT
             if ( $postData !== false )
             {
                 curl_setopt( $ch, CURLOPT_POST, 1 );
@@ -403,6 +407,7 @@
                 "User-Agent: $userAgent\r\n" .
                 "Pragma: no-cache\r\n" .
                 "Connection: close\r\n\r\n";
+            stream_set_timeout( $fp, $processTimeout );
             fputs( $fp, $request );
             if ( $method == 'POST' )
             {
@@ -434,9 +439,20 @@
             {
                 $buf .= fgets( $fp, 128 );
             }
+            $info = stream_get_meta_data($fp);
+
             fclose($fp);
-
-            return $buf;
+            if ( $info['timed_out'] )
+            {
+                eZDebug::writeError( 'connection error: processing timed out', 'eZSolr::sendHTTPRequest()' );
+                return false;
+            }
+            else
+            {
+                return $buf;
+            }
+
+
         }
     }
 }

Modified: ezfind/ezp4/trunk/extension/ezfind/doc/changelogs/2.0/unstable/CHANGELOG-2.0.0alpha1-to-2.0.0beta1
==============================================================================
--- ezfind/ezp4/trunk/extension/ezfind/doc/changelogs/2.0/unstable/CHANGELOG-2.0.0alpha1-to-2.0.0beta1 (original)
+++ ezfind/ezp4/trunk/extension/ezfind/doc/changelogs/2.0/unstable/CHANGELOG-2.0.0alpha1-to-2.0.0beta1 Mon Nov 17 19:23:08 2008
@@ -13,3 +13,4 @@
 - changed "minimum must match" definition in solrconfig.xml (rev 3315)
 - fixed bug	#013351: rhel service script searches for a JAVA_HOME var, but then uses simply "java"
 - fixed bug #013959: Incorrect date formatting on win32
+- fixed enhancement #013348: improvements to ezsolrbase::sendHTTPRequest

Modified: ezfind/ezp4/trunk/extension/ezfind/settings/solr.ini.append.php
==============================================================================
--- ezfind/ezp4/trunk/extension/ezfind/settings/solr.ini.append.php (original)
+++ ezfind/ezp4/trunk/extension/ezfind/settings/solr.ini.append.php Mon Nov 17 19:23:08 2008
@@ -5,5 +5,7 @@
 SearchServerURI=http://localhost:8983/solr
 # Solr connection timeout in seconds
 ConnectionTimeout=10
+# Solr read/send timeout in seconds, for larger indexes increase this to accomodate long optimize and/or commit processing
+ProcessTimeout=20
 
 */ ?>

_______________________________________________
svn-eZFind mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/svn-ezfind

Reply via email to