Индекс "Цены на продукцию" и "Атрибуты продукции" зависели от фондового индекса?


Я обнаружил, что на клиентском сервере запуск фондового индекса вызывает большую нагрузку и замедляет работу сайта, поэтому я изменил фондовый индекс на ручной.

После того, как я изменил индекс "состояние запасов" на ручной режим, каждый раз, когда я сохранял продукт, "Цены на продукты" и "Атрибуты продукта" всегда требовали повторного индексирования. Я нашел конфигурацию:

            <catalog_product_attribute>
                <depends>
                    <cataloginventory_stock/>
                </depends>
            </catalog_product_attribute>
            <catalog_product_price>
                <depends>
                    <cataloginventory_stock/>
                </depends>
            </catalog_product_price>

На app/code/core/Mage/CatalogInventory/etc/config.xml

Поэтому я удалил (прокомментировал) эту часть xml, и эти два индексатора кажутся нормальными, но может ли кто-нибудь объяснить для меня что это за бирка? просто порядок запуска индексаторов или что-то более глубокое? безопасно ли удалять эти разделы?

Author: Lan Nguyen, 2014-01-14

1 answers

Если вы заглянете в Mage_CatalogInventory_Model_Indexer_Stock, то заметите, что как часть функции _registerEvent проверяется сущность события. Если эта сущность соответствует типу core_config_data и значение cataloginventory/options/show_out_of_stock изменилось, то выполняется следующий код:

Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_price')
    ->changeStatus(Mage_Index_Model_Process::STATUS_REQUIRE_REINDEX);
Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_attribute')
    ->changeStatus(Mage_Index_Model_Process::STATUS_REQUIRE_REINDEX);

Также, если атрибут "статус" изменился, индексатор переиндексирует продукт, проверьте _registerCatalogProductEvent и _registerStockItemSaveEvent, где, если статус изменится, цена будет переиндексирована. См. Комментарий в коде.

// Saving stock item without product object
// Register re-index price process if products out of stock hidden on Front-end

Похоже, что если у вас нет скрытый запас на интерфейсной опции, тогда индексаторы не будут заблокированы вместе, но на всякий случай вы добавили эту зависимость в magento.

Последнее замечание о зависимости: Это было добавлено для обеспечения того, чтобы индексы были заполнены в правильном порядке, так как вы не хотели бы, чтобы один индекс был завершен, а затем его состояние изменилось на необходимость переиндексации, поскольку другой индекс обновил свое состояние.

 1
Author: David Manners, 2014-03-31 16:57:04