php - Magento 部分索引过程的可见性

标签 php mysql magento indexing cron

Magento Enterprise 1.13+ 使用“部分索引”进程,该进程作为 Magento cron 作业的一部分在后台运行。我目前正在努力了解这个过程正在做什么。

我了解部分索引器的工作原理是跟踪实体以通过数据库中的“变更日志”表(catalog_category_flat_clcatalog_category_product_cat_cl 等)重新编制索引,然后在 cron 运行时重新索引这些特定项目。

Magento cron 当前正在我的服务器上运行(同一个 cron 进程已经运行了大约 3 个小时)。 cron_schedule 表表明 enterprise_refresh_index 正在进行中,并与上述 cron 进程同时启动。

但是,当我计算更改日志表中的行时,值总是相同的;这些表中的行数没有减少(如果部分索引器正在处理它们,我会期望什么?)。 n98-magerun 工具列出了索引,但当前没有一个正在处理:

$ n98-magerun.phar index:list
+------------------------------+-----------------+------+
| code                         | status          | time |
+------------------------------+-----------------+------+
| catalog_product_attribute    | require_reindex | 28m  |
| catalog_product_price        | pending         | 0    |
| catalog_url                  | pending         | 0    |
| catalog_product_flat         | pending         | 0    |
| catalog_category_flat        | pending         | 0    |
| catalog_category_product     | pending         | 0    |
| catalogsearch_fulltext       | pending         | 0    |
| cataloginventory_stock       | pending         | 0    |
| tag_summary                  | require_reindex | 1s   |
| url_redirect                 | pending         | 0    |
| catalog_url_category         | pending         | 0    |
| catalog_url_product          | pending         | 0    |
| catalog_category_product_cat | pending         | 0    |
| targetrule                   | pending         | 0    |
+------------------------------+-----------------+------+

var/locks 目录似乎对每个索引器都有事件锁,这没有意义(当索引进程完成时,锁文件应该被删除吗?:

$ ls -lah
total 64K
drwxrws--- 2 www-data www-data 4.0K Sep 23 22:56 .
drwxrws--- 8 www-data www-data 4.0K Sep 10 07:12 ..
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_10.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_11.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_12.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_13.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_14.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 23 22:20 index_process_1.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 23 17:53 index_process_2.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_3.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_4.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_5.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_6.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_7.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_8.lock
-rw-rw-r-- 1 www-data www-data   31 Sep 24 00:10 index_process_9.lock

任何关于我如何能更多地了解部分索引过程、它目前正在做什么、它取得了什么进展/还有什么有待索引的建议都将不胜感激!

最佳答案

还有一些其他的表,查看enterprise_mview_*。 有一段时间没有使用企业索引器,但上次我为控制台配置了 XDebug 并分析了它的作用。或者到处都是 Mage::log(),但我不建议在真正的调试器上使用它。

希望它能让您走上正轨。

关于php - Magento 部分索引过程的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26015563/

相关文章:

php - 如何在此类中上传多张图片

php - 如何使用 jQuery Ajax 将多个表单值传递给 php?

php - 从 url 获取 id 号并将其添加到 mysql where 子句?

php - 与占位符一起使用时,PDO 仅更新一行

Magento 禁用数据库缓存

php - 如何在 Laravel 中限定模型数据的范围

php - fileperms() : stat failed, 但文件存在

php - Symfony2 Doctrine blob 类型

php - Magento - 获取当前产品

magento - 何时不使用 local.xml 在 magento 中进行主题开发