目前我正在努力解決如何加快magento產品的儲存。我們通過Magento API導入產品,每種產品都需要更新一些時間。在catalog_product_save_ *事件中觸發了大量觀察者。幾個技巧如何加快在magento儲存產品
你有什麼祕訣什麼觀察員是不重要的,我可以禁用他們或我可以禁用低影響力。
Thansk的任何建議。 Jaro
目前我正在努力解決如何加快magento產品的儲存。我們通過Magento API導入產品,每種產品都需要更新一些時間。在catalog_product_save_ *事件中觸發了大量觀察者。幾個技巧如何加快在magento儲存產品
你有什麼祕訣什麼觀察員是不重要的,我可以禁用他們或我可以禁用低影響力。
Thansk的任何建議。 Jaro
只需將所有索引的索引模式設置爲「手動」即可。
因此,magento每次保存產品後都不會運行reindex。
不要忘記將它們設置恢復正常,並在產品導入完成後運行完整reindex。
產品保存後花費最多時間的過程是索引器。 您可以設置索引模式manual
編程方式是這樣的:
$indexers = Mage::getSingleton('index/indexer')->getProcessesCollection();
foreach ($indexers as $indexer) {
$indexer->setMode(Mage_Index_Model_Process::MODE_MANUAL)->save();
}
而且導入後其設置爲auto
:
$indexers = Mage::getSingleton('index/indexer')->getProcessesCollection();
foreach ($indexers as $indexer) {
$indexer->setMode(Mage_Index_Model_Process::MODE_REAL_TIME)->save();
}
這也取決於您要導入你可能要重新索引你的數據是什麼。
可能索引列表:
- 產品屬性
- 產品價格
- 目錄URL重寫
- 產品平面數據
- 類別平面數據
- 分類產品
- 目錄搜索指數
- 標籤聚合數據
- 庫存狀態
要執行重新索引:
$process = Mage::getModel('index/process')->load($id);
$process->reindexAll();
哪裏$id
是從上面所列內容列表索引。
這確實有幫助,通常最貪婪的過程就是搜索索引。我知道這件事。我的問題更多地指向觀察員的catalog_product_save_after和catalog_product_save_be。這裏可能是另一個性能問題。你知道其中的任何一個可以幫助我,如果我禁用它們並處理它們層? – Jaro
這對我來說無能爲力,因爲API隨機發送產品更新,我無法禁用/啓用索引編寫manualy,這對我來說是不可行的。感謝您的回覆。 – Jaro