示例#1
0
文件: console.php 项目: Blu2z/implsk
 /**
  *
  * @param nc_search_indexer $indexer
  * @throws nc_search_exception
  * @return boolean true when task is finished
  */
 public function loop(nc_search_indexer $indexer)
 {
     $cycle_number = 0;
     $delay = (int) nc_search::get_setting('CrawlerDelay');
     while (true) {
         // сохранять задачу каждые X циклов
         if ($cycle_number % nc_search::get_setting('IndexerSaveTaskEveryNthCycle') == 0) {
             $indexer->save_task();
         }
         switch ($indexer->next()) {
             case nc_search_indexer::TASK_FINISHED:
                 return true;
                 // we're done
             // we're done
             case nc_search_indexer::TASK_STEP_FINISHED:
                 $delay && sleep($delay);
                 break;
             case nc_search_indexer::TASK_STEP_SKIPPED:
                 break;
             default:
                 throw new nc_search_exception("Incorrect return value from nc_search_indexer::next()");
         }
         $cycle_number++;
     }
 }