diff options
-rw-r--r-- | modules/search/helpers/search_task.php | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/modules/search/helpers/search_task.php b/modules/search/helpers/search_task.php index 8d69d3dc..892ff4d4 100644 --- a/modules/search/helpers/search_task.php +++ b/modules/search/helpers/search_task.php @@ -46,22 +46,24 @@ class search_task_Core { static function update_index($task) { $completed = $task->get("completed", 0); - foreach (ORM::factory("search_record")->where("dirty", 1)->limit(2)->find_all() as $record) { - search::update_record($record); - $completed++; - } - $task->set("completed", $completed); + $start = microtime(true); + while (!$task->done && microtime(true) - $start < .5) { + foreach (ORM::factory("search_record")->where("dirty", 1)->limit(5)->find_all() as $record) { + search::update_record($record); + $completed++; + } - list ($remaining, $total, $percent) = self::_get_stats(); - if ($remaining + $completed) { - $task->percent_complete = round(100 * $completed / ($remaining + $completed)); - - $task->status = t("%done records records updated, index is %percent% up-to-date", - array("done" => $completed, "percent" => $percent)); - } else { - $task->percent_complete = 100; + list ($remaining, $total, $percent) = self::_get_stats(); + if ($remaining + $completed) { + $task->percent_complete = round(100 * $completed / ($remaining + $completed)); + $task->status = t("%done records records updated, index is %percent% up-to-date", + array("done" => $completed, "percent" => $percent)); + } else { + $task->percent_complete = 100; + } } + $task->set("completed", $completed); if ($remaining == 0) { $task->done = true; $task->state = "success"; |