PHPackages                             elvisthermiranda/rabbitmq-laravel - 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. elvisthermiranda/rabbitmq-laravel

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

elvisthermiranda/rabbitmq-laravel
=================================

Um pacote para integrar o rabbitmq ao job do laravel

v1.0.0(7mo ago)02MITPHPPHP &gt;=8.1

Since Sep 26Pushed 7mo agoCompare

[ Source](https://github.com/elvisthermiranda/rabbitmq-laravel)[ Packagist](https://packagist.org/packages/elvisthermiranda/rabbitmq-laravel)[ RSS](/packages/elvisthermiranda-rabbitmq-laravel/feed)WikiDiscussions main Synced 1mo ago

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

RabbitMQ Laravel Queue Driver
=============================

[](#rabbitmq-laravel-queue-driver)

[![Laravel](https://camo.githubusercontent.com/ca802a82bf0566a0a9b48f7065bf4a71c8d8e3c0149a7299149d809cdae6ae5b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d3130253246313125324631322d726564)](https://laravel.com)
[![PHP](https://camo.githubusercontent.com/1a5e13126d38c1d05f712dae30e7f60ae0444a9c882e9e526349ccba27facb8d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344382e312d626c7565)](https://php.net)
[![License: MIT](https://camo.githubusercontent.com/784362b26e4b3546254f1893e778ba64616e362bd6ac791991d2c9e880a3a64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e737667)](LICENSE)

Um pacote Laravel que adiciona suporte ao **RabbitMQ** como driver de queue, permitindo rodar jobs com o comando nativo:

```
php artisan queue:work rabbitmq
```

Também oferece uma **facade `Rabbit`** para publicar e consumir mensagens diretamente, com suporte a **exchanges, routing keys e delays**.

---

📦 Instalação
------------

[](#-instalação)

```
composer require elvisthermiranda/rabbitmq-laravel
```

---

⚙️ Configuração
---------------

[](#️-configuração)

No `config/queue.php` adicione a conexão `rabbitmq`:

```
'rabbitmq' => [
    'driver'   => 'rabbitmq',
    'host'     => env('RABBITMQ_HOST', '127.0.0.1'),
    'port'     => env('RABBITMQ_PORT', 5672),
    'username' => env('RABBITMQ_USER', 'guest'),
    'password' => env('RABBITMQ_PASSWORD', 'guest'),
    'vhost'    => env('RABBITMQ_VHOST', '/'),
    'queue'    => env('RABBITMQ_QUEUE', 'default'),

    'exchange' => [
        'name'        => env('RABBITMQ_EXCHANGE', 'app_exchange'),
        'type'        => env('RABBITMQ_EXCHANGE_TYPE', 'direct'),
        'durable'     => true,
        'auto_delete' => false,
        'args'        => [],
    ],
],
```

Arquivo `.env`:

```
QUEUE_CONNECTION=rabbitmq

RABBITMQ_HOST=127.0.0.1
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_VHOST=/
RABBITMQ_QUEUE=default
RABBITMQ_EXCHANGE=app_exchange
RABBITMQ_EXCHANGE_TYPE=direct
```

---

🚀 Uso com Jobs do Laravel
-------------------------

[](#-uso-com-jobs-do-laravel)

Crie um job normalmente:

```
php artisan make:job ProcessExampleJob
```

```
namespace App\Jobs;

use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Log;

class ProcessExampleJob implements ShouldQueue
{
    public function handle()
    {
        Log::info("RabbitMQ job executado com sucesso!");
    }
}
```

Dispare o job:

```
ProcessExampleJob::dispatch();
```

Execute:

```
php artisan queue:work rabbitmq
```

---

🧩 Uso direto com a Facade `Rabbit`
----------------------------------

[](#-uso-direto-com-a-facade-rabbit)

### 1. Publicar mensagem

[](#1-publicar-mensagem)

```
Rabbit::push('example', ['msg' => 'olá mundo']);
```

### 2. Publicar várias mensagens

[](#2-publicar-várias-mensagens)

```
Rabbit::pushBatch('example', [
    ['msg' => 'primeira'],
    ['msg' => 'segunda'],
]);
```

### 3. Consumir mensagens

[](#3-consumir-mensagens)

```
Rabbit::consume('example', function ($data, $msg) {
    echo "Mensagem recebida: " . json_encode($data) . PHP_EOL;
    Rabbit::ack($msg);
});
```

### 4. Consumir uma única mensagem (teste)

[](#4-consumir-uma-única-mensagem-teste)

```
Rabbit::consumeOne('example', function ($data, $msg) {
    echo "Mensagem única: " . json_encode($data) . PHP_EOL;
    Rabbit::ack($msg);
});
```

### 5. NACK com requeue

[](#5-nack-com-requeue)

```
Rabbit::consume('example', function ($data, $msg) {
    if (!isset($data['processar'])) {
        Rabbit::nack($msg, true); // devolve para a fila
        return;
    }

    Rabbit::ack($msg);
});
```

---

⏳ Mensagens com Delay
---------------------

[](#-mensagens-com-delay)

### 1. Delay básico (TTL + DLX)

[](#1-delay-básico-ttl--dlx)

Funciona em qualquer RabbitMQ, cria uma fila `example-delayed` automaticamente:

```
Rabbit::later('example', ['msg' => 'executar daqui a 10s'], 10);
```

### 2. Delay com Plugin Oficial (`x-delayed-message`)

[](#2-delay-com-plugin-oficial-x-delayed-message)

Mais flexível, cada mensagem pode ter um delay diferente.

Habilite o plugin no RabbitMQ:

```
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
```

Uso:

```
Rabbit::publishDelayed('example', ['msg' => 'executar daqui a 5s'], 5000);
```

Com routing key customizada:

```
Rabbit::publishDelayed('emails', ['msg' => 'bem-vindo'], 10000, 'email.welcome');
```

---

🛠 Dependências
--------------

[](#-dependências)

- [php-amqplib/php-amqplib](https://github.com/php-amqplib/php-amqplib)
- Illuminate components: `support`, `contracts`, `queue`, `container`

---

📖 Roadmap
---------

[](#-roadmap)

- Suporte básico ao RabbitMQ (`push`, `pop`, `ack`, `nack`)
- Suporte a **delay via TTL/DLX**
- Suporte a **delay via plugin oficial (`x-delayed-message`)**
- Suporte a múltiplos exchanges e routing keys
- Testes automatizados

---

📜 Licença
---------

[](#-licença)

MIT License — veja o arquivo [LICENSE](LICENSE).

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance63

Regular maintenance activity

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity44

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

Unknown

Total

1

Last Release

228d ago

### Community

Maintainers

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

---

Top Contributors

[![elvisthermiranda](https://avatars.githubusercontent.com/u/70981971?v=4)](https://github.com/elvisthermiranda "elvisthermiranda (6 commits)")

### Embed Badge

![Health badge](/badges/elvisthermiranda-rabbitmq-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/elvisthermiranda-rabbitmq-laravel/health.svg)](https://phpackages.com/packages/elvisthermiranda-rabbitmq-laravel)
```

###  Alternatives

[illuminate/queue

The Illuminate Queue package.

20331.4M1.2k](/packages/illuminate-queue)[laravel/pennant

A simple, lightweight library for managing feature flags.

57311.1M53](/packages/laravel-pennant)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[bref/laravel-bridge

An advanced Laravel integration for Bref, including Octane support.

3384.1M11](/packages/bref-laravel-bridge)[illuminate/broadcasting

The Illuminate Broadcasting package.

7126.5M178](/packages/illuminate-broadcasting)[illuminate/notifications

The Illuminate Notifications package.

483.0M967](/packages/illuminate-notifications)

PHPackages © 2026

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