2014-02-19 3 views
1

Как получить статус статуса индекса Magento. Я хотел бы перестроить индексацию программно, если необходимо, в соответствии со статусом. Следующий код будет переиндексировать все без учета состояния.Как проверить состояние индекса Magento

Я хотел бы восстановить индекс, если потребуется.

$indexCollection = Mage::getModel('index/process')->getCollection(); 
foreach ($indexCollection as $index) { 
    $index->reindexAll(); 
} 
+0

Я думаю, что это поможет вам http://magento.stackexchange.com/questions/5791/check-if-reindexing-is-needed –

ответ

3

вы можете попробовать что-то вроде этого

$myindex = Mage::getSingleton('index/indexer')->getProcessByCode('processcode'); 
echo $myindex->getStatus(); 
0

Вы можете попробовать таким образом.

for($i=1; $i<=9; $i++){ 
    $process = Mage::getSingleton('index/indexer')->getProcessById($i); 
    $state = $process->getStatus(); 
    if($state == Mage_Index_Model_Process::STATUS_PENDING){ 
     $process->reindexEverything(); 
    } 
} 
+0

не является хорошей идеей, вы не знаете, есть ли на самом деле 9 индексов, и вы не делаете никаких проверок объектов, чтобы убедиться, что они существуют – Mayers

Смежные вопросы