PHPackages                             molecular/queueprocessmanager - 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. [Queues &amp; Workers](/categories/queues)
4. /
5. molecular/queueprocessmanager

ActiveLibrary[Queues &amp; Workers](/categories/queues)

molecular/queueprocessmanager
=============================

PHP Queue Process Manager

1.0(9y ago)319PHP

Since Aug 12Pushed 8y ago2 watchersCompare

[ Source](https://github.com/toninho09/php-qpm)[ Packagist](https://packagist.org/packages/molecular/queueprocessmanager)[ RSS](/packages/molecular-queueprocessmanager/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

PHP Queue Process Manager
=========================

[](#php-queue-process-manager)

Uma biblioteca php para controle de filas de processo

### Introdução

[](#introdução)

Biblioteca criada para a manipulação de processos em fila, usando filas em tabelas de banco de dados, é possível obter o retorno do processo, assim como o seu status, podendo lançar processos que não apenas são executados de forma assíncrona com a thread atual da requisição, mais que também podem ser monitorados.

### Instação

[](#instação)

```
composer require molecular/queueprocessmanager dev-master

```

### Requerimentos

[](#requerimentos)

- PHP &gt;= 5.4.\*

#### Uso Básico

[](#uso-básico)

O uso se resume em um cliente que coloca processos na fila, da mesma forma tem os consumidores, que removem os itens da fila e fazem o seu processamento

##### Código do cliente

[](#código-do-cliente)

```
        //É criado o manipulador da fila, nesse caso por sql
        $handle = new \PhpQPM\QueueHandle\Sql\SqlQueueHandle();

        //Informações para conexões do banco
        $handle->connect('mysql:host=localhost;dbname=QueueManager', 'teste', 'teste');

        //Cria um Manager para servir de interface para a fila, usando o manipulador sql criado anteriormente
        $manager = new \PhpQPM\Manager($handle);

        $foo = 10;

        //É colocado uma processo na fila para ser executado, nesse caso um closure
        //O scope do closure é armazenado na fila junto ao closure para ser executado mais tarde
        //o método putProcessOnQueue retorna um observer da fila
        $process = $manager->putProcessOnQueue(function() use($foo){
           return 10 + $foo;
        });

        //aguarda o processo ser finalizado
        //O método update do observer atualiza os dados do objeto com base nos dados da fila
        //Após o consumidor da consumir o processo, o método isFinish retornará true
        while(!$process->update()->isFinish()){sleep(1);};

        //O método é executado e pode ser obtido o retorno através do método getReturn
        $bar = $process->getReturn();// 20
```

#### Código do consumidor

[](#código-do-consumidor)

```
        //É criado a conexão e o Manager da mesma forma que no cliente
        $handle = new \PhpQPM\QueueHandle\Sql\SqlQueueHandle();
        $handle->connect('mysql:host=localhost;dbname=QueueManager', 'teste', 'teste');
        $manager = new \PhpQPM\Manager($handle);
        //Através do manager pode ser gerado o consumidor da fila
        $worker = $manager->createWorker();
        //O método work cria um loop onde é verificado se existe itens pendentes na fila
        //Caso exista itens pendentes na fila, os mesmo são processados
        $worker->work();
```

Simples. =)

### Caracteristicas

[](#caracteristicas)

O PHP Queue Process Manager utiliza o [Super\_Closure](https://github.com/jeremeamia/super_closure) Para Serializar os Closure e coloca-los na fila, aceitando varias formas de closure e possuindo recursos para serialização de escopo.

Alem dos closures é possível estender a classe \\PhpQPM\\Process\\ProcessQueueable e colocar uma classe que possui método run na fila, esse método será executado assim que for obtido da fila, alem do método run é possível ter acesso direto ao processo.

#### Exemplo ProcessQueueable

[](#exemplo-processqueueable)

```
        //A Classe deve estender ProcessQueueable para poder ser executada na fila
        class SimpleProcess extends \PhpQPM\Process\ProcessQueueable
        {
            //A classe possui o método abstrato run que deve ser implementado com a lógica do processo
            //A classe também pode conter propriedades que as mesmas são serializados para a fila
            public function run()
            {
                return 10;
            }
        }

        $handle = new \PhpQPM\QueueHandle\Sql\SqlQueueHandle();
        $handle->connect('mysql:host=localhost;dbname=QueueManager', 'teste', 'teste');
        $manager = new \PhpQPM\Manager($handle);

        //O método putProcessOnQueue do Manager aceita um objeto do tipo ProcessQueueable
        $process = $manager->putProcessOnQueue(new SimpleProcess());

        while(!$process->update()->isFinish()){sleep(1);};

        $bar = $process->getReturn();// 10
```

### Manipulando o processo

[](#manipulando-o-processo)

Ao colocar um item na fila, é obtido um observer que pode monitorar o processo na fila, algumas das funções que esse observer possui é verificar o status e obter o retorno da fila, assim como atualizar o próprio observer

```
    /* Mesmo Código do exemplo anterior*/
    //...

        $process = $manager->putProcessOnQueue(new SimpleProcess());

        //Verifica se o processo já foi reservado pela fila
        $process->isReserved();

        //Verifica se o processo já foi reservado pela fila, porém o seu processamento ainda não foi concluido
        $process->isRunning();

        //Verifica se o processo já foi concluído
        $process->isFinish();

        //Verifica se o processo ainda não foi reservado pela fila
        $process->isWait();

        //Obtem o retorno do processo
        $process->getReturn();

        //Verifica se ocorreu algum erro no processamento
        $process->hasError();

        //Obtem o erro no processamento
        $process->getError();

        //Atualiza o observer com os dados mais atuais da fila
        $process->update();

    //...

```

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity63

Established project with proven stability

 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

Unknown

Total

1

Last Release

3369d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9f43758479e2ccb4212691a2239574ee3d428cc800763de0f7fe6eb2f78b1721?d=identicon)[toninho09](/maintainers/toninho09)

---

Top Contributors

[![toninho09](https://avatars.githubusercontent.com/u/3867972?v=4)](https://github.com/toninho09 "toninho09 (26 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/molecular-queueprocessmanager/health.svg)

```
[![Health](https://phpackages.com/badges/molecular-queueprocessmanager/health.svg)](https://phpackages.com/packages/molecular-queueprocessmanager)
```

###  Alternatives

[league/geotools

Geo-related tools PHP 7.3+ library

1.4k5.6M31](/packages/league-geotools)[illuminate/bus

The Illuminate Bus package.

6046.3M535](/packages/illuminate-bus)[urbanindo/yii2-queue

Queue component for Yii2

11350.4k](/packages/urbanindo-yii2-queue)[hutnikau/job-scheduler

PHP job scheduler

7991.5k](/packages/hutnikau-job-scheduler)[belvg/module-sqs

N/A

1544.6k](/packages/belvg-module-sqs)[mayconbordin/l5-stomp-queue

Stomp Queue Driver for Laravel 5

121.1k](/packages/mayconbordin-l5-stomp-queue)

PHPackages © 2026

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