|
12 | 12 | use Magento\CatalogSearch\Model\ResourceModel\Fulltext as FulltextResource; |
13 | 13 | use Magento\Framework\App\ObjectManager; |
14 | 14 | use Magento\Framework\Indexer\DimensionProviderInterface; |
15 | | -use Magento\Framework\Indexer\SaveHandler\EnhancedIndexerInterface; |
| 15 | +use Magento\Framework\Indexer\SaveHandler\StackedActionsIndexerInterface; |
16 | 16 | use Magento\Framework\Indexer\SaveHandler\IndexerInterface; |
17 | 17 | use Magento\Store\Model\StoreDimensionProvider; |
18 | 18 | use Magento\Indexer\Model\ProcessManager; |
@@ -220,12 +220,18 @@ private function processBatch( |
220 | 220 | ); |
221 | 221 |
|
222 | 222 | if ($saveHandler->isAvailable($dimensions)) { |
223 | | - if (in_array(EnhancedIndexerInterface::class, class_implements($saveHandler))) { |
224 | | - $saveHandler->enableStackedActions(); |
225 | | - $saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds)); |
226 | | - $saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds)); |
227 | | - $saveHandler->triggerStackedActions(); |
228 | | - $saveHandler->disableStackedActions(); |
| 223 | + if (in_array(StackedActionsIndexerInterface::class, class_implements($saveHandler))) { |
| 224 | + try { |
| 225 | + $saveHandler->enableStackedActions(); |
| 226 | + $saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds)); |
| 227 | + $saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds)); |
| 228 | + $saveHandler->triggerStackedActions(); |
| 229 | + $saveHandler->disableStackedActions(); |
| 230 | + } catch (\Throwable $exception) { |
| 231 | + $saveHandler->disableStackedActions(); |
| 232 | + $saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds)); |
| 233 | + $saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds)); |
| 234 | + } |
229 | 235 | } else { |
230 | 236 | $saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds)); |
231 | 237 | $saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds)); |
|
0 commit comments