2012-03-29 15 views
14

私は同様のトピックを検索しましたが、解決策がないようです。特定のマゼンタインデクサプロセスを停止する方法はありますか?Magentoインデクサープロセスを停止する方法はありますか?

私はこれを取得シェルからインデックスを再作成してみてください:

php -f indexer.php reindex all 
Stock Status Index process is working now. Please try run this process later. 
Product Prices Index process is working now. Please try run this process later. 
Catalog URL Rewrites Index process is working now. Please try run this process later. 
Product Flat Data Index process is working now. Please try run this process later. 
Category Flat Data Index process is working now. Please try run this process later. 
Category Products Index process is working now. Please try run this process later. 
Catalog Search Index Index process is working now. Please try run this process later. 
Stock Status index was rebuilt successfully 
Tag Aggregation Data Index process is working now. Please try run this process later. 

私はインデクサーのステータスを確認しようとすると、私はこの取得:

Product Attributes:   Pending 
Product Prices:    Pending 
Catalog URL Rewrites:   Pending 
Product Flat Data:    Pending 
Category Flat Data:   Pending 
Category Products:    Pending 
Catalog Search Index:   Pending 
Stock Status:     Pending 
Tag Aggregation Data:   Pending 

私は管理者からのインデックスを再作成した場合、インデックスの再作成プロセスがスローされますエラーはありません。この問題に関するいくつかの文書へのリンクがありますか?

おかげで、 ラドゥ

答えて

3

まず、マニュアルにインデックスモードを設定しよう:

php indexer.php --mode-manual catalog_product_attribute 
php indexer.php --mode-manual catalog_product_price 
php indexer.php --mode-manual catalog_url 
php indexer.php --mode-manual catalog_product_flat 
php indexer.php --mode-manual catalog_category_flat 
php indexer.php --mode-manual catalog_category_product 
php indexer.php --mode-manual catalogsearch_fulltext 
php indexer.php --mode-manual cataloginventory_stock 
php indexer.php --mode-manual tag_summary 

その後、すべてのインデックスのインデックスを再作成しよう:

php indexer.php reindexall 

とにモードを設定します再びリアルタイム:

php indexer.php --mode-realtime catalog_product_attribute 
php indexer.php --mode-realtime catalog_product_price 
php indexer.php --mode-realtime catalog_url 
php indexer.php --mode-realtime catalog_product_flat 
php indexer.php --mode-realtime catalog_category_flat 
php indexer.php --mode-realtime catalog_category_product 
php indexer.php --mode-realtime catalogsearch_fulltext 
php indexer.php --mode-realtime cataloginventory_stock 
php indexer.php --mode-realtime tag_summary 

これが動作しない場合は、sudo /etc/init.d/apache2 restartのようなものでApacheを再起動してみてください。これにより、インデックス作成プロセスが停止するはずです。しかし、Apacheを再起動すると、サイトが数秒間使用できなくなることに注意してください。

+0

再起動Apacheはどちらか助けていません。 – Mike

22

ほとんどの場合(ほとんどの場合、常にそうだと確信しています)、単一のHTTPリクエスト中にインデックスが作成されます。 PHPエラーのためにそのリクエストの停止/タイムアウト/が失敗した場合、インデクサはインデックス作成が行われていなくてもロックファイルを置き去りにします。これらのファイルは、

インデックスプロセスが現在取り組んでいる

/path/to/mage/var/locks/index_process*.lock 

に位置しています。このプロセスを後で実行してください。

例外として、これらのロックファイルの1つが表示されます。誰もインデックスを実行しようとしていないことが分かっている場合は、ファイルを削除してインデックスを再開するだけです。

+1

私は 'top'と相談し、lsphp5セッション(LiteSpeed WS)が非常に高速で非常に連続的に出力されていないことがわかっていれば、実際にインデックスプロセスが実行されていないことがわかります。次のステップでは、ロックファイルを削除し、コマンドラインから別々に再インデックスを実行して、リソースの枯渇やセッションの途切れを避けることで、すべてが完了するようにします。 Magentoのさまざまな操作中に「トップ」に支払うので、通常のプロセッサの使用状況を知ることができます。これは簡単な診断になります。 –

+1

アランの場合は、マゼンタのインデックス作成プロセスを軽視してください。私はインデックス作成プロセス(カタログ検索インデックス)を開始し、ブラウザを閉じて停止しました。今では理想的にはPHPプロセスを終了させるべきですが、mysql processlist ouptutをチェックすると、magentoがまだバックグラウンドでインデックスを作成していることを示唆していました。私は、Magentoがプロセスの実行を維持する方法を理解していませんでした。サイトはステージング中ですので、誰もシェルやブラウザからインデックスを開始していませんでした。 – anshuman

+0

このパスには** NO ** locksフォルダがあります。 '/ path/to/mage/var /' –

1

最新のバージョンでは、ロックファイルはデータベース(Magento 1.9)から変更され、動作しています。

phpMyAdminにログインし、下記のコマンドを実行してください。

UPDATE index_process SET status = 'pending' WHERE status = 'working' 

http://www.writeyourcode.com/stop-magento-indexing-process/

関連する問題