PHPackages                             steamulo/elastica-fast-populate-bundle - 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. [Search &amp; Filtering](/categories/search)
4. /
5. steamulo/elastica-fast-populate-bundle

AbandonedSymfony-bundle[Search &amp; Filtering](/categories/search)

steamulo/elastica-fast-populate-bundle
======================================

Improves performance of fos:elastica:populate command from FOSElasticaBundle by distributing the work among consumers.

1.0.2(2y ago)09.1k1MITPHPPHP ^7.4 || ^8.0

Since Oct 10Pushed 2y ago2 watchersCompare

[ Source](https://github.com/STEAMULO/STMElasticaFastPopulateBundle)[ Packagist](https://packagist.org/packages/steamulo/elastica-fast-populate-bundle)[ RSS](/packages/steamulo-elastica-fast-populate-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

Elastica Fast Populate Bundle
=============================

[](#elastica-fast-populate-bundle)

Improves performance of `fos:elastica:populate` command from [FOSElasticaBundle](https://github.com/FriendsOfSymfony/FOSElasticaBundle) by distributing the work among consumers.

This bundle is based on [Enqueue Elastica Bundle](https://github.com/php-enqueue/enqueue-elastica-bundle), and provides a command to directly manage the "populate" with a set of sub-processes automatically. The performance gain depends on how much consumers you run. For example 10 consumers may give you 5 to 7 times better performance.

Installation
------------

[](#installation)

When installing the bundle, `Enqueue ElasticaBundle` is also automatically installed. It must then be configured in order to indicate the way in which the sub-processes will communicate.

Default `enqueue.yaml`:

```
enqueue:
    default:
        transport:
            dsn: '%env(resolve:ENQUEUE_DSN)%'
        client: ~
enqueue_elastica:
    transport: '%enqueue.default_transport%'
    doctrine: ~

```

***Note:** As long as you are on Symfony Flex you are done. If not, you have to do some extra things, like registering the bundle in your `AppKernel` class.*

Usage
-----

[](#usage)

- Run the populate command with some consumers (the more you run the better performance you might get):

```
php bin/console stm:fast-populate:populate --nb-subprocess=6
```

Customization
-------------

[](#customization)

### Options for the command

[](#options-for-the-command)

To limit the memory consumption of sub-processes you can use different parameters :

- `message-limit` - Integer. Consume n messages and exit.
- `time-limit` - Integer. Consume messages during this time.
- `memory-limit` - Integer. Consume messages until process reaches this memory limit in MB.

You can also use the classic populate options : [PopulateCommand.php](https://github.com/FriendsOfSymfony/FOSElasticaBundle/blob/master/src/Command/PopulateCommand.php)

For example, to limit the memory consumption to 800MB for 8 sub-processes and process 1000 elements per page, you can run the command like this:

```
php bin/console app:elastica:populate --memory-limit=800 --max-per-page=1000 --nb-subprocess=8
```

### Customizing the consumer

[](#customizing-the-consumer)

The `QueuePagerPersister` could be customized via options. The options could be customized in a listener subscribed on `FOS\ElasticaBundle\Persister\Event\PrePersistEvent` event for example.

Here's the list of available options:

- `max_per_page` - Integer. Tells how many objects should be processed by a single worker at a time.
- `first_page` - Integer. Tells from what page to start rebuilding the index.
- `last_page` - Integer. Tells on what page to stop rebuilding the index.
- `populate_queue` - String. It is a name of a populate queue. Workers should consume messages from it.
- `populate_reply_queue` - String. It is a name of a reply queue. The command should consume replies from it. Persister tries to create a temporary queue if not set.
- `reply_receive_timeout` - Float. A time a consumer waits for a message. In milliseconds.
- `limit_overall_reply_time` - Int. Limits an overtime allowed processing time. Throws an exception if it is exceeded.

License
-------

[](#license)

It is released under the [MIT License](LICENSE).

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity53

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.

###  Release Activity

Cadence

Every ~134 days

Total

3

Last Release

1038d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/61c8ef8e582f46d9a2aa1208df611e1f6236ce276ff293a2c0042cdd869b1b1e?d=identicon)[tlanquetin](/maintainers/tlanquetin)

---

Top Contributors

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

---

Tags

performanceelasticsearchelasticafos

### Embed Badge

![Health badge](/badges/steamulo-elastica-fast-populate-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/steamulo-elastica-fast-populate-bundle/health.svg)](https://phpackages.com/packages/steamulo-elastica-fast-populate-bundle)
```

###  Alternatives

[jolicode/elastically

Opinionated Elastica based framework to bootstrap PHP and Elasticsearch implementations.

2571.7M1](/packages/jolicode-elastically)[enqueue/elastica-bundle

The bundle adds extra features to FOSElasticaBundle bundle

46796.3k1](/packages/enqueue-elastica-bundle)[heyday/silverstripe-elastica

Provides Elastic Search integration for SilverStripe DataObjects using Elastica

1136.8k2](/packages/heyday-silverstripe-elastica)[michaeljennings/laralastica

A laravel package that allows you to search eloquent results using elasticsearch.

102.9k](/packages/michaeljennings-laralastica)

PHPackages © 2026

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