Необходимо очистить кэш и переиндексировать продукт по идентификаторам


У меня есть массив с 500 идентификаторами продуктов, мне нужно переиндексировать эти продукты и очистить их кэш. Я не хочу переиндексировать все, потому что у меня более 100 000 продуктов в БД, то же самое для кэша.

Знаете ли вы, как лучше всего сделать это быстро?

Я в Magento 2.1.10.

Спасибо!:)

Author: Vinz, 2017-11-16

1 answers

Я выполнил функцию для индексации продукта:

public function reindexByProductsIds($productIds, $indexLists)
{
    foreach($indexLists as $indexList) {
        $categoryIndexer = $this->indexerRegistry->get($indexList);
        if (!$categoryIndexer->isScheduled()) {
            $categoryIndexer->reindexList(array_unique($productIds));
        }
    }
}

Где $INDEXLISTS - это массив, подобный ['catalog_product_attribute']

И для кэша я использовал: $this->cacheManager->clean($idsToCacheClean);, где $this->cacheManager - это Magento\Framework\App\CacheInterface

 1
Author: Vinz, 2017-11-23 09:14:58