undo getIndex experiment, a=chris

Chris Pollett [2021-09-12 21:Sep:th]
undo getIndex experiment, a=chris
Filename
src/library/IndexManager.php
diff --git a/src/library/IndexManager.php b/src/library/IndexManager.php
index 5f357cf34..8eb4f1c4f 100644
--- a/src/library/IndexManager.php
+++ b/src/library/IndexManager.php
@@ -70,12 +70,6 @@ class IndexManager implements CrawlConstants
     public static function getIndex($index_name)
     {
         $index_name = trim($index_name); //trim to fix postgres quirkiness
-        if (!empty(self::$index_times[$index_name]) &&
-            ($index_name != 'feed' || php_sapi_name() != 'cli' ||
-            (time() - self::$index_times[$index_name])
-            < C\MIN_QUERY_CACHE_TIME) ) {
-            return self::$indexes[$index_name];
-        }
         $cache_dir = C\CRAWL_DIR . '/cache/';
         $index_archive_full_path = $cache_dir . self::index_data_base_name .
             $index_name;
@@ -115,68 +109,74 @@ class IndexManager implements CrawlConstants
         } else if (!$handled) {
             return false;
         }
-        if (!isset($tmp)) {
-            $index_filename = $cache_dir . $index_archive_name;
-            if (file_exists($index_filename)) {
-                $is_old = (file_exists($index_filename . "/summaries"));
-                $bundle_class_name = ($is_old) ? C\NS_LIB .
-                    "IndexArchiveBundle" : C\NS_LIB . "IndexDocumentBundle";
-                $tmp = new $bundle_class_name($cache_dir .
-                    $index_archive_name);
-                if (!$tmp) {
-                    return false;
-                }
-            } else {
-                $tmp = false;
-                $use_name = $index_name;
-                $serve_archive = -1;
-                if (preg_match("/\-\d$/", $index_name)) {
-                    $serve_archive = substr($index_name, -1);
-                    $use_name = substr($index_name, 0, -2);
-                }
-                $index_archive_name = self::double_index_base_name .
-                    $use_name;
-                $status_file = $cache_dir . $index_archive_name .
-                    "/status.txt";
-                if ($serve_archive < 0 && file_exists($status_file)) {
-                    $status = unserialize(file_get_contents($status_file));
-                    $active_archive = (empty($status["swap_count"])) ? 1 :
-                        $status["swap_count"] % 2;
-                    $serve_archive = 1 - $active_archive;
-                }
-                $is_old = (file_exists($index_filename .
-                    "/bundle0/summaries") ||
-                    file_exists($index_filename . "/bundle1/summaries"));
-                $bundle_class_name = ($is_old) ?
-                    C\NS_LIB . "IndexArchiveBundle"
-                    : C\NS_LIB . "IndexDocumentBundle";
-                $tmp = new $bundle_class_name($cache_dir .
-                    $index_archive_name . "/bundle$serve_archive");
-                if (!$tmp) {
-                    $serve_archive = ($serve_archive == 0) ? 1 : 0;
+        if (empty(self::$indexes[$index_name]) ||
+            (!empty(self::$index_times[$index_name]) &&
+            ($index_name == 'feed' && php_sapi_name() == 'cli') &&
+            (time() - self::$index_times[$index_name])
+            > C\MIN_QUERY_CACHE_TIME) ) {
+            if (!isset($tmp)) {
+                $index_filename = $cache_dir . $index_archive_name;
+                if (file_exists($index_filename)) {
+                    $is_old = (file_exists($index_filename . "/summaries"));
+                    $bundle_class_name = ($is_old) ? C\NS_LIB .
+                        "IndexArchiveBundle" : C\NS_LIB . "IndexDocumentBundle";
+                    $tmp = new $bundle_class_name($cache_dir .
+                        $index_archive_name);
+                    if (!$tmp) {
+                        return false;
+                    }
+                } else {
+                    $tmp = false;
+                    $use_name = $index_name;
+                    $serve_archive = -1;
+                    if (preg_match("/\-\d$/", $index_name)) {
+                        $serve_archive = substr($index_name, -1);
+                        $use_name = substr($index_name, 0, -2);
+                    }
+                    $index_archive_name = self::double_index_base_name .
+                        $use_name;
+                    $status_file = $cache_dir . $index_archive_name .
+                        "/status.txt";
+                    if ($serve_archive < 0 && file_exists($status_file)) {
+                        $status = unserialize(file_get_contents($status_file));
+                        $active_archive = (empty($status["swap_count"])) ? 1 :
+                            $status["swap_count"] % 2;
+                        $serve_archive = 1 - $active_archive;
+                    }
+                    $is_old = (file_exists($index_filename .
+                        "/bundle0/summaries") ||
+                        file_exists($index_filename . "/bundle1/summaries"));
+                    $bundle_class_name = ($is_old) ?
+                        C\NS_LIB . "IndexArchiveBundle"
+                        : C\NS_LIB . "IndexDocumentBundle";
                     $tmp = new $bundle_class_name($cache_dir .
                         $index_archive_name . "/bundle$serve_archive");
-                }
-                if (!$tmp) {
-                    return false;
+                    if (!$tmp) {
+                        $serve_archive = ($serve_archive == 0) ? 1 : 0;
+                        $tmp = new $bundle_class_name($cache_dir .
+                            $index_archive_name . "/bundle$serve_archive");
+                    }
+                    if (!$tmp) {
+                        return false;
+                    }
                 }
             }
-        }
-        self::$indexes[$index_name] = $tmp;
-        if ($is_old) {
-            self::$indexes[$index_name]->setCurrentShard(0, true);
-        }
-        self::$index_times[$index_name] = time();
-        /*
-           If too many cached discard oldest 1/3 of cached indices
-         */
-        if (count(self::$indexes) > self::INDEX_CACHE_SIZE) {
-            $times = array_values(self::$index_times);
-            sort($times);
-            $oldest_third = $times[floor(count($times)/3)];
-            foreach (self::$index_times as $name => $time) {
-                if ($time <= $oldest_third) {
-                    unset(self::$index_times[$name], self::$indexes[$name]);
+            self::$indexes[$index_name] = $tmp;
+            if ($is_old) {
+                self::$indexes[$index_name]->setCurrentShard(0, true);
+            }
+            self::$index_times[$index_name] = time();
+            /*
+               If too many cached discard oldest 1/3 of cached indices
+             */
+            if (count(self::$indexes) > self::INDEX_CACHE_SIZE) {
+                $times = array_values(self::$index_times);
+                sort($times);
+                $oldest_third = $times[floor(count($times)/3)];
+                foreach (self::$index_times as $name => $time) {
+                    if ($time <= $oldest_third) {
+                        unset(self::$index_times[$name], self::$indexes[$name]);
+                    }
                 }
             }
         }
ViewGit