furan / module-indexer-isolation
Magento 2 module to isolate slow indexers into their own cron group
Package info
github.com/furan917/Magento2-IndexerIsolation
Type:magento2-module
pkg:composer/furan/module-indexer-isolation
Requires
- php: ^8.1
- magento/framework: >=103.0
- magento/module-indexer: >=100.4
This package is auto-updated.
Last update: 2026-03-23 13:59:00 UTC
README
Moves slow Magento indexers into their own cron group so they stop blocking everything else.
The problem
Magento's index cron group processes all indexers sequentially. If one takes hours (e.g. catalogsearch_fulltext on a large catalogue), every other indexer waits behind it.
What this module does
Selected indexers are moved into a separate index_isolated cron group that runs in its own PHP process. The remaining indexers continue in the default group unblocked. No additional system crontab entry is needed.
Quick start
cp -r Furan/IndexerIsolation app/code/Furan/IndexerIsolation bin/magento module:enable Furan_IndexerIsolation bin/magento setup:upgrade
- Go to Stores > Configuration > Advanced > System > Indexer Isolation
- Set "Enable Indexer Isolation" to Yes
- Select which indexers to isolate
- Save
The multiselect only shows indexers that are safe to isolate. Indexers with a shared_index or that other indexers depend on are excluded automatically.
When disabled, Magento behaves exactly as stock. Zero overhead.
How it works
Two interception layers handle the two indexer pathways:
Mview (partial reindex via changelogs): A plugin on Mview\ConfigInterface dynamically reassigns the mview group for isolated views from indexer to index_isolated. The default group skips them, the isolated group picks them up.
ReindexAllInvalid (full reindex of invalid indexers): A process-local in-memory flag combined with a plugin on Indexer\ConfigInterface filters isolated indexers out of getIndexers() during reindexAllInvalid(). No database state is modified. The isolated group runs in a separate PHP process and is unaffected by the flag.
Three dedicated cron jobs in the index_isolated group handle mview updates, full reindex, and changelog cleanup.
Requirements
- Magento 2.4.8 or later
- PHP 8.1+