ในส่วนใหญ่ของเว็บวีโอไอพีวีโอไอพีส่วนใหญ่มันเป็นเรื่องยากที่จะทำให้การจัดการดัชนีแบ็กเอนด์วีโอไอพีทำงานได้ ฉันมีปัญหานี้บ่อยครั้ง การรันเชลล์สคริปต์ตลอดเวลาโดยผู้พัฒนามักจะวุ่นวาย ฉันมักจะแก้ไขปัญหานี้อย่างถาวรเช่นนี้
ฉันสร้างสำเนาใหม่ของ shell / indexer.php> shell / myindexer.php
ปรับแต่ง shell / myindexer.php รอบ ๆ บรรทัดที่ 154
} 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 รวมถึงกระบวนการทำดัชนีใหม่ทั้งหมดนั้นรวดเร็วมาก หากไม่มีกระบวนการใดต้องการการทำดัชนีใหม่ก็จะไม่เรียกใช้กระบวนการทำดัชนีใหม่ อย่าลืมวางโหมดการทำดัชนีใหม่ไว้ที่ "Update on Save" ในหน้าการจัดการดัชนี หากคุณไม่ทราบคุณสามารถรับตัวเลือกนี้ในการดำเนินการ> เปลี่ยนโหมดดัชนีข้างปุ่มส่ง