Di sebagian besar webshop Magento berat, sebagian besar sangat sulit untuk membuat Manajemen Indeks backend Magento berfungsi. Saya sering mengalami masalah ini. Menjalankan skrip shell sepanjang waktu oleh pengembang seringkali sibuk. Biasanya saya memperbaiki masalah ini secara permanen seperti ini.
Saya membuat salinan baru shell / indexer.php> shell / myindexer.php
Kustomisasi shell / myindexer.php di sekitar baris 154
} else if ($this->getArg('reindex') || $this->getArg('reindexall')) {
Untuk
} else if ($this->getArg('reindex') || $this->getArg('reindexall') || $this->getArg('reindexallrequired') ) {
dan, tambahkan pemeriksaan ini di sekitar baris 166
//reindex only if required
if( $this->getArg('reindexallrequired') && $process->getStatus() == Mage_Index_Model_Process::STATUS_PENDING )
continue;
sebelum
$startTime = microtime(true);
$process->reindexEverything();
$resultTime = microtime(true) - $startTime;
Mage::dispatchEvent($process->getIndexerCode() . '_shell_reindex_after');
Dan kemudian saya menambahkan skrip shell baru ke cpanel cron untuk dijalankan setiap 5 menit
/home/public_html/shell/indexer.php --reindexallrequired >/dev/null
Seperti script shell di atas berjalan setiap 5 menit dan hanya proses pengindeksan ulang yang membutuhkan pengindeksan ulang, itu mengurangi risiko beban berat ke server cpu serta seluruh proses pengindeksan ulang sangat cepat. Jika tidak ada proses yang memerlukan pengindeksan ulang, itu tidak akan menjalankan proses pengindeksan ulang. Juga, ingatlah untuk menempatkan mode pengindeksan ulang ke "Update on Save" di halaman Manajemen Indeks. Jika Anda tidak tahu, Anda bisa mendapatkan opsi ini di Tindakan> Ubah mode indeks di sebelah tombol Kirim.