Esempio n. 1
0
 /**
  * Работает ли в данный момент переиндексация?
  * @param bool $remove_hung_tasks
  * @return false|nc_search_indexer_task
  */
 public static function get_current_task($remove_hung_tasks = true)
 {
     $tasks = nc_search::load_all('nc_search_indexer_task', true);
     if (!sizeof($tasks)) {
         return false;
     }
     // не подвисли ли мы?
     $task = $tasks->first();
     if ($remove_hung_tasks && time() > $task->get('last_activity') + nc_search::get_setting("IndexerRemoveIdleTasksAfter")) {
         $task->delete();
         $db = nc_Core::get_object()->db;
         $db->query("TRUNCATE TABLE `Search_Link`");
         $db->query("TRUNCATE TABLE `Search_LinkReferrer`");
         nc_search::log(nc_search::LOG_ERROR, "Indexer task was last active at " . strftime("%Y-%m-%d %H:%M:%S", (int) $task->get('last_activity')) . ". Task removed.");
         return false;
     }
     return $task;
 }
Esempio n. 2
0
 /**
  * (Separate method to make testing easier)
  * @return nc_search_data_persistent_collection of nc_search_field
  */
 protected function get_field_settings()
 {
     return nc_search::load_all('nc_search_field');
 }