nuwber / rabbitevents

Nuwber's RabbitEvents provides a simple observer implementation, allowing you to publishing and handling for various events that occur in your applications. For example, if you need to react to some event occurred in another API.
MIT License
120 stars 36 forks source link

Getting "PhpAmqpLib\Exception\AMQPInvalidArgumentException: String too long" on message delay when I start listener without event names #123

Closed webartisan10 closed 8 months ago

webartisan10 commented 8 months ago

Lumen version

10.0.1

Package version

8.1.3

PHP version

8.2

RabbitMQ version

3.8.34

Description

When I start listener without the event names, and some event handlers get an exception, then Enqueue\AmqpTools\RabbitMqDlxDelayStrategy tries to delay that failed event back to RMQ. However, I get an exception PhpAmqpLib\Exception\AMQPInvalidArgumentException: String too long

Full stacktrace:

PhpAmqpLib\Exception\AMQPInvalidArgumentException: String too long
#27 /vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/AMQPWriter.php(294): PhpAmqpLib\Wire\AMQPWriter::write_shortstr
#26 /vendor/php-amqplib/php-amqplib/PhpAmqpLib/Helper/Protocol/Protocol091.php(444): PhpAmqpLib\Helper\Protocol\Protocol091::queueDeclare
#25 /vendor/php-amqplib/php-amqplib/PhpAmqpLib/Channel/AMQPChannel.php(662): PhpAmqpLib\Channel\AMQPChannel::queue_declare
#24 /vendor/enqueue/amqp-lib/AmqpContext.php(165): Enqueue\AmqpLib\AmqpContext::declareQueue
#23 /vendor/enqueue/amqp-tools/RabbitMqDlxDelayStrategy.php(53): Enqueue\AmqpTools\RabbitMqDlxDelayStrategy::delayMessage
#22 /vendor/enqueue/amqp-lib/AmqpProducer.php(149): Enqueue\AmqpLib\AmqpProducer::doSend
#21 /vendor/enqueue/amqp-lib/AmqpProducer.php(75): Enqueue\AmqpLib\AmqpProducer::send
#20 /vendor/nuwber/rabbitevents/src/RabbitEvents/Foundation/Support/Sender.php(28): RabbitEvents\Foundation\Support\Sender::send
#19 /vendor/nuwber/rabbitevents/src/RabbitEvents/Listener/Message/Handler.php(110): RabbitEvents\Listener\Message\Handler::release
#18 /vendor/nuwber/rabbitevents/src/RabbitEvents/Listener/Message/Processor.php(100): RabbitEvents\Listener\Message\Processor::handleException
#17 /vendor/nuwber/rabbitevents/src/RabbitEvents/Listener/Message/Processor.php(66): RabbitEvents\Listener\Message\Processor::runHandler
#16 /vendor/nuwber/rabbitevents/src/RabbitEvents/Listener/Message/Processor.php(33): RabbitEvents\Listener\Message\Processor::process
#15 /vendor/nuwber/rabbitevents/src/RabbitEvents/Listener/Worker.php(93): RabbitEvents\Listener\Worker::processMessage
#14 /vendor/nuwber/rabbitevents/src/RabbitEvents/Listener/Worker.php(49): RabbitEvents\Listener\Worker::work
#13 /vendor/nuwber/rabbitevents/src/RabbitEvents/Listener/Commands/ListenCommand.php(76): RabbitEvents\Listener\Commands\ListenCommand::handle
#12 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}
#11 /vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\Util::unwrapIfClosure
#10 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\BoundMethod::callBoundMethod
#9 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::call
#8 /vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\Container\Container::call
#7 /vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\Console\Command::execute
#6 /vendor/symfony/console/Command/Command.php(326): Symfony\Component\Console\Command\Command::run
#5 /vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Illuminate\Console\Command::run
#4 /vendor/symfony/console/Application.php(1063): Symfony\Component\Console\Application::doRunCommand
#3 /vendor/symfony/console/Application.php(320): Symfony\Component\Console\Application::doRun
#2 /vendor/symfony/console/Application.php(174): Symfony\Component\Console\Application::run
#1 /vendor/laravel/lumen-framework/src/Console/Kernel.php(116): Laravel\Lumen\Console\Kernel::handle
#0 /artisan(35): null
masterjus commented 8 months ago

@Islamgaliyev thank you.

eugene-nuwber commented 8 months ago

@Islamgaliyev I've made the PR. Could you please check if your app is working now?

webartisan10 commented 8 months ago

@Islamgaliyev I've made the PR. Could you please check if your app is working now?

It works. Thanks