fhteam / laravel-amqp by FractalizeR

AMQP library driver for Laravel Queue
14,815
28
9
Package Data
Maintainer Username: FractalizeR
Package Create Date: 2014-10-29
Package Last Update: 2019-06-25
Home Page:
Language: PHP
License: GPL-2.0
Last Refreshed: 2024-11-22 03:02:26
Package Statistics
Total Downloads: 14,815
Monthly Downloads: 243
Daily Downloads: 10
Total Stars: 28
Total Watchers: 9
Total Forks: 12
Total Open Issues: 2

laravel-amqp PHP version Code Climate Laravel compatibility

AMQP driver for Laravel queue. This driver uses popular AMQPLib for PHP: https://github.com/videlalvaro/php-amqplib (This library is a pure PHP implementation of the AMQP protocol so it may be used to connect to a number of queue managers around)

Installation

Please do note, that package name has changed to fhteam/laravel-amqp. Old name should still work, though it will not be maintained.

  • Simple composer installation is ok: composer require fhteam/laravel-amqp:~1.0 (set version requirement to your favourite)
  • Note, that mbstring and bcmath extensions are required for php-amqplib to work properly. The first is not yet listed in library's composer.json (https://github.com/videlalvaro/php-amqplib/issues/229)

Configuration

In your config/queue.php file you have to provide the following:


'default' => 'amqp',

'connections' => array(
    'amqp' => array(
        'driver' => 'amqp',
        'host' => 'localhost',
        'port' => '5672',
        'user' => 'guest',
        'password' => 'guest',
        'vhost' => '/',
        'queue' => null,
        'queue_flags' => ['durable' => true, 'routing_key' => null], //Durable queue (survives server crash)
        'declare_queues' => true, //If we need to declare queues each time before sending a message. If not, you will have to declare them manually elsewhere
        'message_properties' => ['delivery_mode' => 2], //Persistent messages (survives server crash)
        'channel_id' => null,
        'exchange_name' => null,
        'exchange_type' => null,
        'exchange_flags' => null,
        'keepalive' > false,
        'heartbeat' => 0,
        'retry_after' => 0,
        ),
),

In your config/app.php add 'Forumhouse\LaravelAmqp\ServiceProvider\LaravelAmqpServiceProvider' to the list of service providers registered.

Improved worker stability (PHP 7.1+ is required)

For better stability please add following code in app/Exceptions/Handler.php:

class Handler extends ExceptionHandler
{

to

class Handler extends ExceptionHandler
{
    use AMQPFailureDetector;

And

public function report(Exception $exception)
{
    parent::report($exception);
}

to

public function report(Exception $exception)
{
    $this->catchAMQPConnectionFailure($exception);
    parent::report($exception);
}

Usage

To find out how to use Laravel Queues, please refer to the following official documentation: http://laravel.com/docs/queues