2012-06-14 49 views
1

目前我正在努力解決如何加快magento產品的儲存。我們通過Magento API導入產品,每種產品都需要更新一些時間。在catalog_product_save_ *事件中觸發了大量觀察者。幾個技巧如何加快在magento儲存產品

你有什麼祕訣什麼觀察員是不重要的,我可以禁用他們或我可以禁用低影響力。

Thansk的任何建議。 Jaro

回答

3

只需將所有索引的索引模式設置爲「手動」即可。
因此,magento每次保存產品後都不會運行reindex。
不要忘記將它們設置恢復正​​常,並在產品導入完成後運行完整reindex。

+0

這對我來說無能爲力,因爲API隨機發送產品更新,我無法禁用/啓用索引編寫manualy,這對我來說是不可行的。感謝您的回覆。 – Jaro

3

產品保存後花費最多時間的過程是索引器。 您可以設置索引模式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(); 

} 

這也取決於您要導入你可能要重新索引你的數據是什麼。

可能索引列表:

  1. 產品屬性
  2. 產品價格
  3. 目錄URL重寫
  4. 產品平面數據
  5. 類別平面數據
  6. 分類產品
  7. 目錄搜索指數
  8. 標籤聚合數據
  9. 庫存狀態

要執行重新索引:

$process = Mage::getModel('index/process')->load($id); 
$process->reindexAll(); 

哪裏$id是從上面所列內容列表索引。

+0

這確實有幫助,通常最貪婪的過程就是搜索索引。我知道這件事。我的問題更多地指向觀察員的catalog_product_save_after和catalog_product_save_be。這裏可能是另一個性能問題。你知道其中的任何一個可以幫助我,如果我禁用它們並處理它們層? – Jaro