summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/search/helpers/search_task.php28
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";