Mat*_*imB 10 php indexing zend-framework magento magento-1.7
我通过命令行创建了一个Magento实例并添加了一些产品.之后,为每个索引启动了重新索引进程.目前的情况是所有索引都有状态挂起/处理.这种情况给我带来了一些问题:
我已经执行php shell/indexer.php reindexall
但没有改变.并且,如果我执行php shell/indexer.php --status
所有索引报告为'待定'.
谢谢
Ala*_*orm 23
第一:你想要直截了当地说出你的术语.(这可能有点令人困惑).Magento指数具有三种状态之一.
pending
working
require_reindex
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看这些状态的常量
const STATUS_RUNNING = 'working';
const STATUS_PENDING = 'pending';
const STATUS_REQUIRE_REINDEX = 'require_reindex';
Run Code Online (Sandbox Code Playgroud)
这可能令人困惑,因为Magento用于表示这些状态的图像使用不同的术语.
也就是说,当索引的状态为pending
,Magento的UI表示为Ready
.当索引具有状态时working
,Magento的UI将其表示为Processing
,等等.
令人困惑的是,indexer.php
命令不使用这个术语 - 而是使用更接近实际状态的术语
Pending
Require Reindex
Running
Run Code Online (Sandbox Code Playgroud)
因此,当您说上面的待处理/处理时,不清楚您的系统处于什么状态.
第二:PHP没有内置的排队系统 - 这意味着每个索引都在一个单独的PHP进程中运行.这也意味着Magento和PHP没有(简单,可靠)的方法来确定索引进程是否正在运行.为了实现STATUS_RUNNING
/ Working
/ Running
status,Magento使用锁定文件来跟踪索引的状态.这些锁文件位于
var/locks/index_process_*
Run Code Online (Sandbox Code Playgroud)
当一个索引被"卡住" STATUS_RUNNING
/ Working
/ Running
的时间超过你的期望时,通常是因为
索引器请求退出一半,但无法清理其日志文件
文件的权限var/locks/index_process_*
是PHP无法写入文件的
回复:#2 - 如果您习惯使用命令行索引器,通常最终会创建Magento从web-server/web-admin运行时无法编辑的文件或删除.删除这些文件然后重新编制索引通常是解决此问题的最佳方法.
归档时间: |
|
查看次数: |
14232 次 |
最近记录: |