-
Notifications
You must be signed in to change notification settings - Fork 30
Commit df5601a
[Messenger][Amqp] Added missing rpc_timeout option
Without this option, it's not possible to set a timeout on the connection. It
means, if the network between RabbitMQ and the application goes down, the code
in `Connection::get()` will hand forever. And at some point it will cause more
troubles. For example:
* many connection/channel opened (because the consumer is not killed) ;
* or, when the connexion gets back, RabbitMQ have killed the consumer anyway =>
Another Exception.
With this patch, and with the following configuration, exception are clear on
what occurs.
```
framework:
messenger:
transports:
rabbitmq:
dsn: ....
options:
read_timeout: 5
write_timeout: 5
connect_timeout: 5
confirm_timeout: 5
rpc_timeout: 5
[...]
```
Example of exception:
```
In AmqpReceiver.php line 56:
[Symfony\Component\Messenger\Exception\TransportException]
Library error: request timed out
Exception trace:
at /app/vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php:56
Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->getEnvelope() at /app/vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php:47
Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->getFromQueues() at /app/vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php:41
Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->get() at /app/vendor/symfony/symfony/src/Symfony/Component/Messenger/Worker.php:106
Symfony\Component\Messenger\Worker->run() at /app/vendor/symfony/symfony/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php:229
Symfony\Component\Messenger\Command\ConsumeMessagesCommand->execute() at /app/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:312
Symfony\Component\Console\Command\Command->run() at /app/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:1038
Symfony\Component\Console\Application->doRunCommand() at /app/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:88
Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /app/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:312
Symfony\Component\Console\Application->doRun() at /app/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:77
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /app/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:168
Symfony\Component\Console\Application->run() at /app/bin/console:29
In Connection.php line 432:
[AMQPException]
Library error: request timed out
Exception trace:
at /app/vendor/symfony/amqp-messenger/Transport/Connection.php:432
AMQPQueue->get() at /app/vendor/symfony/amqp-messenger/Transport/Connection.php:432
Symfony\Component\Messenger\Bridge\Amqp\Transport\Connection->get() at /app/vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php:54
Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->getEnvelope() at /app/vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php:47
Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->getFromQueues() at /app/vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php:41
Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->get() at /app/vendor/symfony/symfony/src/Symfony/Component/Messenger/Worker.php:106
Symfony\Component\Messenger\Worker->run() at /app/vendor/symfony/symfony/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php:229
Symfony\Component\Messenger\Command\ConsumeMessagesCommand->execute() at /app/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:312
Symfony\Component\Console\Command\Command->run() at /app/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:1038
Symfony\Component\Console\Application->doRunCommand() at /app/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:88
Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /app/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:312
Symfony\Component\Console\Application->doRun() at /app/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:77
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /app/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:168
Symfony\Component\Console\Application->run() at /app/bin/console:29
messenger:consume [-l|--limit LIMIT] [-f|--failure-limit FAILURE-LIMIT] [-m|--memory-limit MEMORY-LIMIT] [-t|--time-limit TIME-LIMIT] [--sleep SLEEP] [-b|--bus BUS] [--queues QUEUES] [--no-reset] [--] [<receivers>...]
```1 parent 8775f97 commit df5601aCopy full SHA for df5601a
File tree
Expand file treeCollapse file tree
1 file changed
+4
-0
lines changedFilter options
- Transport
Expand file treeCollapse file tree
1 file changed
+4
-0
lines changed+4Lines changed: 4 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
32 | 32 |
| |
33 | 33 |
| |
34 | 34 |
| |
| 35 | + | |
| 36 | + | |
| 37 | + | |
35 | 38 |
| |
36 | 39 |
| |
37 | 40 |
| |
| |||
53 | 56 |
| |
54 | 57 |
| |
55 | 58 |
| |
| 59 | + | |
56 | 60 |
| |
57 | 61 |
| |
58 | 62 |
| |
|
0 commit comments