目前我正在尝试研究如何加快在 magento 中保存产品的速度。我们通过 Magento API 导入产品,每个产品都需要很长时间才能更新。在 catalog_product_save_* 事件上触发了大量的观察者。
你有什么提示什么观察者不重要,我可以禁用它们,或者我可以用低影响禁用什么。
感谢您的任何建议。哈罗
目前我正在尝试研究如何加快在 magento 中保存产品的速度。我们通过 Magento API 导入产品,每个产品都需要很长时间才能更新。在 catalog_product_save_* 事件上触发了大量的观察者。
你有什么提示什么观察者不重要,我可以禁用它们,或者我可以用低影响禁用什么。
感谢您的任何建议。哈罗
产品保存后花费最多时间的过程是索引器。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
上面列表中的列表索引在哪里。
只需将所有索引的索引模式设置为“手动”即可。
因此,每次保存产品后,magento 都不会运行重新索引。
不要忘记将它们恢复正常并在产品导入完成后运行完整的重新索引。