Есть ли способ остановить процесс индексации пурпурного?

Я искал похожие темы, но решение, похоже, не работает. Есть ли способ остановить определенный процесс индексатора пурпурного цвета?

Когда я пытаюсь переиндексировать из оболочки, я получаю следующее:

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

Если я переиндексирую администратор, процесс переиндексации не вызывает ошибок. Есть ли ссылка на некоторую документацию по этому вопросу?

Спасибо, Radu

Ответы

Ответ 1

В основном индексирование (в основном это означает, что я уверен, что это всегда) происходит во время одного HTTP-запроса. Если этот запрос останавливает/тайм-ауты/терпит неудачу из-за ошибки PHP, индексир оставляет файлы блокировки лежащими, даже если там нет индексации. Эти файлы находятся в

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

Процесс индексирования теперь работает. Повторите попытку позже.

Исключение

- Magento сообщает вам, что видит один из этих файлов блокировки. Если вы точно знаете, что никто не пытается запустить индекс, просто удалите файлы и перезапустите индексирование.

Ответ 2

Сначала попробуйте настроить индексный режим на ручной:

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

Если это не работает, попробуйте перезапустить apache с чем-то вроде sudo /etc/init.d/apache2 restart. Это должно остановить процесс индексирования, и вы можете, возможно, начать его снова после этого. Но помните, что ваш сайт будет недоступен в течение нескольких секунд, если вы перезапустите Apache.

Ответ 3

В последних версиях файлы блокировки были изменены и работают из базы данных (Magento 1.9).

Войдите в свой phpMyAdmin и выполните приведенную ниже команду.

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

Ответ 4

ОБНОВЛЕНИЕ index_process SET status = 'pending' WHERE status = 'working'

На каком столе?