PHPackages                             vrann/magento-parallel-indexer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. vrann/magento-parallel-indexer

ActiveMagento2-module[CLI &amp; Console](/categories/cli)

vrann/magento-parallel-indexer
==============================

CLI tool to run single row re-indexing in parallel

642PHP

Since Oct 9Pushed 10y ago1 watchersCompare

[ Source](https://github.com/vrann/magento-parallel-indexer)[ Packagist](https://packagist.org/packages/vrann/magento-parallel-indexer)[ RSS](/packages/vrann-magento-parallel-indexer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)DependenciesVersions (1)Used By (0)

Indexers Run In Parallel
========================

[](#indexers-run-in-parallel)

This is a Magento 2 module, which provides CLI command to run indexers in single row mode. This is a mode, when you update reindex data for the single row os specific entity rather than all the entites. For example, reindexing of the single Product.

Besides, It contains bash script which allow to run multiple indexers processes in parallel. This is needed in order to test how well indexers behave when run on the single entity simultaneously. Can be helpful for the asynchronous reindexing.

Usage
-----

[](#usage)

1. Install Magento 2
2. Ensure that that minimum stability is "dev" in composer.json (add/update this line "minimum-stability": "dev")
3. Invoke &gt; composer require vrann/magento-parallel-indexer
4. Invoke &gt; bin/magento module:enable Magento\_ParallelIndexer
5. Invoke &gt; bin/magento setup:upgrade

Now CLI command is ready to be used. In order to test it run:

```
bin/magento dev:single-row-indexer
```

With default parameters it will run all the indexers for the random row in Products, Customers, Categories and Target Rules entities. It will load collection of entities in order to get the maximum allowed number for the row id. That's why it is not optimal way. To optimize it, use parameters

```
bin/magento dev:single-row-indexer
    --indexer=catalogpermissions_product,catalogpermissions_category  //specify indexers to run
    --max-categories=100 //amount of Products. Id will be generated in range from 1 to this number
    --max-products=200 //amount of Categories. Id will be generated in range from 1 to this number
    --max-customers=300 //amount of Customers. Id will be generated in range from 1 to this number
    --max-rules=10 //amount of Rules. Id will be generated in range from 1 to this number
    --reindex-id=1 //avoid generation of random id and use this id for all the entities

```

Additionally, bash script is provided to run the command in parallel.

```
vendor/bin/./parallel-run.sh 2 2 0

```

First argument is number of parallel processes to run. Second number is number of iterations to run in parallel process. Third argument is starting counter for the processes.

After that, in order to pass arguments to dev:single-row-indexer CLI command, use this order: 4th: --indexer 5th: --reindex-id 6th: --max-categories 7th: --max-products 8th: --max-customers 9th: --max-rules

```
vendor/bin/./parallel-run.sh 2 2 0 catalogpermissions_product,catalogpermissions_category 1 100 200 300 10

```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/e00d41ada50e7658305b93781a7e4e8a63239ee17a850639b914f16302c1cd1c?d=identicon)[vrann](/maintainers/vrann)

---

Top Contributors

[![vrann](https://avatars.githubusercontent.com/u/2277722?v=4)](https://github.com/vrann "vrann (5 commits)")

### Embed Badge

![Health badge](/badges/vrann-magento-parallel-indexer/health.svg)

```
[![Health](https://phpackages.com/badges/vrann-magento-parallel-indexer/health.svg)](https://phpackages.com/packages/vrann-magento-parallel-indexer)
```

###  Alternatives

[wp-cli/wp-cli

WP-CLI framework

5.1k17.2M320](/packages/wp-cli-wp-cli)[consolidation/annotated-command

Initialize Symfony Console commands from annotated command class methods.

22569.8M19](/packages/consolidation-annotated-command)[seld/cli-prompt

Allows you to prompt for user input on the command line, and optionally hide the characters they type

24725.8M17](/packages/seld-cli-prompt)[illuminate/console

The Illuminate Console package.

12944.1M5.1k](/packages/illuminate-console)[php-tui/php-tui

Comprehensive TUI library heavily influenced by Ratatui

589747.0k6](/packages/php-tui-php-tui)[codedungeon/php-cli-colors

Liven up you PHP Console Apps with standard colors

10210.1M26](/packages/codedungeon-php-cli-colors)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
