|
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