대부분의 Magento 웹숍에서는 Magento 백엔드 인덱스 관리를 사용하기가 매우 어려웠습니다. 이 문제가 자주 발생했습니다. 개발자가 쉘 스크립트를 항상 실행하는 것은 종종 바쁜 일입니다. 일반적 으로이 문제를 영구적으로 수정합니다.
shell / indexer.php> shell / myindexer.php의 새 복사본을 만듭니다.
154 줄에서 shell / myindexer.php를 사용자 정의하십시오.
} else if ($this->getArg('reindex') || $this->getArg('reindexall')) {
에
} else if ($this->getArg('reindex') || $this->getArg('reindexall') || $this->getArg('reindexallrequired') ) {
166 행에이 검사를 추가하십시오
//reindex only if required
if( $this->getArg('reindexallrequired') && $process->getStatus() == Mage_Index_Model_Process::STATUS_PENDING )
continue;
전에
$startTime = microtime(true);
$process->reindexEverything();
$resultTime = microtime(true) - $startTime;
Mage::dispatchEvent($process->getIndexerCode() . '_shell_reindex_after');
그런 다음 새로운 쉘 스크립트를 cpanel cron에 추가하여 5 분마다 실행합니다.
/home/public_html/shell/indexer.php --reindexallrequired >/dev/null
위의 셸 스크립트는 5 분마다 실행되고 다시 인덱싱해야하는 프로세스 만 다시 인덱싱하므로 서버 CPU에 대한로드가 높아질뿐만 아니라 전체 인덱싱 프로세스는 매우 빠릅니다. 프로세스의 재색 인화가 필요하지 않은 경우 단순히 재색 인화 프로세스를 실행하지 않습니다. 또한 인덱스 관리 페이지에서 재 인덱싱 모드를 "저장시 업데이트"로 설정해야합니다. 모르는 경우 제출 단추 옆에있는 조치> 색인 모드 변경에서이 옵션을 사용할 수 있습니다.