"PhpAmqpLib \ Exception \ AMQPRuntimeException: connection to channel closed" Error with Lumen queues

I am using the vladimir-yuldashev / laravel-queue-rabbitmq library to use the RabbitMq queues in a Lumen project.

The functionality of the queue works fine, but in my log file I see a few errors below.

lumen.ERROR: PhpAmqpLib \ Exception \ AMQPRuntimeException: connection to the channel is closed. at / var / www / html / vendor / php -amqplib / php-amqplib / PhpAmqpLib / Channel / AbstractChannel.php: 227

From the error stack trace, it seems that the queue name is taken as "NULL". Here is my rabbitmq connection configuration from queue.php

'rabbitmq'  => [
        'driver' => 'rabbitmq',

        'host' => env('RABBITMQ_HOST', 'rabbitmq'),
        'port' => env('RABBITMQ_PORT', 5672),

        'vhost'    => env('RABBITMQ_VHOST', '/'),
        'login'    => env('RABBITMQ_LOGIN', 'guest'),
        'password' => env('RABBITMQ_PASSWORD', 'guest'),

        'queue' => env('RABBITMQ_QUEUE'),
        // name of the default queue,

        'exchange_declare' => env('RABBITMQ_EXCHANGE_DECLARE', true),
        // create the exchange if not exists
        'queue_declare_bind' => env('RABBITMQ_QUEUE_DECLARE_BIND', true),
        // create the queue if not exists and bind to the exchange

        'queue_params' => [
            'passive'     => env('RABBITMQ_QUEUE_PASSIVE', false),
            'durable'     => env('RABBITMQ_QUEUE_DURABLE', true),
            'exclusive'   => env('RABBITMQ_QUEUE_EXCLUSIVE', false),
            'auto_delete' => env('RABBITMQ_QUEUE_AUTODELETE', false),
        ],
        'exchange_params' => [
            'name' => env('RABBITMQ_EXCHANGE_NAME', null),
            'type' => env('RABBITMQ_EXCHANGE_TYPE', 'direct'),
            // more info at http://www.rabbitmq.com/tutorials/amqp-concepts.html
            'passive' => env('RABBITMQ_EXCHANGE_PASSIVE', false),
            'durable' => env('RABBITMQ_EXCHANGE_DURABLE', true),
            // the exchange will survive server restarts
            'auto_delete' => env('RABBITMQ_EXCHANGE_AUTODELETE', false),
        ],

        'sleep_on_error' => env('RABBITMQ_ERROR_SLEEP', 5), // the number of seconds to sleep if there an error communicating with rabbitmq

    ]

. . .

php artisan queue:work rabbitmq

php artisan queue:listen --queue=my-queue-1 --timeout=0
php artisan queue:listen --queue=my-queue-2 --timeout=0
php artisan queue:listen --queue=my-queue-3 --timeout=0

.

:

  • ?
  • ? ?

: , , . 2 1 .. ..

+4
1

, . -, - php artisan queue:work rabbitmq, --queue, , .env.

SO , , .

URL-, queue:listen queue:work, . , , :

php artisan queue:work --queue=my-queue-1 --timeout=0
php artisan queue:work --queue=my-queue-2 --timeout=0
php artisan queue:work --queue=my-queue-3 --timeout=0
0

Source: https://habr.com/ru/post/1680831/


All Articles