buggerfall/laravel-amqp-queue

Laravel 队列连接器,使用 AMQP PECL 扩展。

1.0.6 2017-04-05 08:23 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:44:32 UTC


README

Laravel 队列连接器,利用 AMQP PECL PHP 扩展(https://github.com/pdezwart/php-amqp)。

安装

将以下内容添加到您的 composer.json 的需求中,并运行 composer update

"garbetjie/laravel-amqp-queue": "dev-master"

然后,将以下内容添加到您的 app/config/app.php 文件中的 providers 数组中

'AMQPQueue\ServiceProvider',

将以下配置参数添加到 app/config/queue.php 文件中

'connection_name' => [
    'driver' => 'amqp',
    
    'host' => env('AMQP_HOST', '127.0.0.1'),
    'port' => env('AMQP_PORT', 5672),
    'vhost' => env('AMQP_VIRTUAL_HOST', '/'),
    'login' => env('AMQP_LOGIN', 'guest'),
    'password' => env('AMQP_PASSWORD', 'guest'),
    
    'connect_timeout' => env('AMQP_CONNECT_TIMEOUT', 0),
    'read_timeout' => env('AMQP_READ_TIMEOUT', 0),
    'write_timeout' => env('AMQP_WRITE_TIMEOUT', 0),
    
    // Override default settings for specific queues.
    // Queue names are specified using a regex string, exactly as it is used in preg_match().
    'queues' => [
        // Example:
        '/^transient_queue_\d+/i' => [
            'durable' => false,
            'exchange' => 'fanout_exchange', // Specify the exchange to bind to.
        ],
    ],
    
    // Override default settings for specified exchanges.
    // Name matching is the same as queues.
    'exchanges' => [
        '/^fanout_exchange$/' => [
            'type' => 'fanout',
        ],
    ],
    
    'defaults' => [
        'queues' => [
            'name' => env('AMQP_QUEUE_NAME', 'laravel'), // The default queue to add any commands/jobs onto from within laravel.
            'durable' => env('AMQP_QUEUE_DURABLE', true),
            'passive' => env('AMQP_QUEUE_PASSIVE', false),
            'exclusive' => env('AMQP_QUEUE_EXCLUSIVE', false),
            'autodelete' => env('AMQP_QUEUE_AUTODELETE', false),
        ],
        'exchanges' => [
            'type' => env('AMQP_EXCHANGE_TYPE', 'direct'),
            'durable' => env('AMQP_EXCHANGE_DURABLE', true),
            'passive' => env('AMQP_EXCHANGE_PASSIVE', false),
        ],
    ],
],