很少有提示如何加速在magento中保存产品

时间:2012-06-14 07:31:48

标签: performance api magento

目前我正在努力研究如何加速在magento中保存产品。我们通过Magento API导入产品,每个产品需要很长时间才能更新。在catalog_product_save_ *事件上触发了大量的观察者。

你有什么提示观察者不重要的东西,我可以禁用它们或我可以用低插入禁用的东西。

Thansk提出任何建议。 哈罗

2 个答案:

答案 0 :(得分:3)

只需为所有索引将索引模式设置为“手动” 所以magento在每次产品保存后都不会运行reindex 不要忘记将它们恢复正常并在产品导入完成后运行完全重新索引。

答案 1 :(得分: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. 产品价格
  4.   
  5. 目录网址重写
  6.   
  7. 产品平面数据
  8.   
  9. 类别平面数据
  10.   
  11. 类别产品
  12.   
  13. 目录搜索索引
  14.   
  15. 标记聚合数据
  16.   
  17. 库存状态
  18.   

执行reindex:

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

其中$id是上面列表中的列表索引。