laravel-amqp maintained by wangchengtao
Description
AMQP wrapper for Laravel to publish and consume messages
Author
Last update
2026/04/20 13:09
(dev-refactor/configuration-laravel-style)
License
Downloads
1
Tags
queue - package - rabbitmq - amqp - laravel - message-queue - laravel5 - lumen - bjorn-schmitt - bschmitt
wangchengtao/laravel-amqp
forked from bschmitt/laravel-amqp
Installation
$ php composer require wangchengtao/laravel-amqp
Publishing a message
Push message with routing key
Amqp::publish('routing-key', 'message');
Push message with routing key and create queue
Amqp::publish('routing-key', 'message' , ['queue' => 'queue-name']);
Push message with routing key and overwrite properties
Amqp::publish('routing-key', 'message' , ['exchange' => 'amq.direct']);
Consuming messages
Consume messages, acknowledge and stop when no message is left
Amqp::consume('queue-name', function ($message, $resolver) {
var_dump($message->body);
$resolver->acknowledge($message);
$resolver->stopWhenProcessed();
});
Consume messages forever
Amqp::consume('queue-name', function ($message, $resolver) {
var_dump($message->body);
$resolver->acknowledge($message);
});
Consume messages, with custom settings
Amqp::consume('queue-name', function ($message, $resolver) {
var_dump($message->body);
$resolver->acknowledge($message);
}, [
'timeout' => 2,
'vhost' => 'vhost3'
]);
Fanout example
Publishing a message
\Amqp::publish('', 'message' , [
'exchange_type' => 'fanout',
'exchange' => 'amq.fanout',
]);
Consuming messages
\Amqp::consume('', function ($message, $resolver) {
var_dump($message->body);
$resolver->acknowledge($message);
}, [
'routing' => '',
'exchange' => 'amq.fanout',
'exchange_type' => 'fanout',
'queue_force_declare' => true,
'queue_exclusive' => true,
'persistent' => true // required if you want to listen forever
]);