我最近因为重新编制目录搜索索引而陷入了这个奇怪的问题。
我创建了一个自定义模块,它有一个事件观察器,用于查找重新索引进程完成事件,然后在数据库的catalogsearch_index表上运行一些其他操作。
当我运行索引时,一切都按计划运行。当某些其他计算机运行索引进程时,它只是忽略我的扩展,就像没有调用该事件一样。一些其他计算机工作,一些不工作。我启用了
ini_set('display_errors', 1);
index.php文件中的错误行,以查看错误,我的机器或他们的机器上没有。
可能导致这种情况的原因是什么?所有代码都是PHP,因此应该在服务器端运行。为什么不同的计算机会改变我的代码遵循索引过程的方式?
提前谢谢!
编辑:我刚刚发现我的代码在其他机器上根本没有被执行。显然在其他机器上,我的事件观察者并没有观察和运行我的脚本。为什么会这样?感谢。
答案 0 :(得分:0)
你应该做的第一件事是检查日志文件,看看,如果你能在那里找到任何东西。您还可以在观察者中记录您的操作,以了解最新情况。
您确定问题与特定计算机有关吗? 它可能与php执行时间有关:可能在某些时候,服务器处于这样的负载之下,reindex进程实际上永远不会完成,因此,您的观察者代码可能不会被执行。
我总是使用ssh进行重建索引:
cd /your/magento/directory
php shell/indexer.php reindexall
答案 1 :(得分:0)
我会检查以确保您的模块甚至安装在其他系统上。检查core_resource中的正确行。