Skip to content

Commit 9f4620c

Browse files
Merge branch 'vyuldashev:master' into config-to-disable-x-expires
2 parents c851214 + d06427b commit 9f4620c

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,33 @@ Available protocols : `tcp`, `ssl`, `tls`
553553
],
554554
```
555555

556+
### Network Timeouts
557+
558+
For network timeouts configuration you can use option parameters.
559+
All float values are in seconds and zero value can mean infinite timeout.
560+
Example contains default values.
561+
562+
```php
563+
'connections' => [
564+
// ...
565+
566+
'rabbitmq' => [
567+
// ...
568+
569+
'options' => [
570+
// ...
571+
572+
'connection_timeout' => 3.0,
573+
'read_timeout' => 3.0,
574+
'write_timeout' => 3.0,
575+
'channel_rpc_timeout' => 0.0,
576+
],
577+
],
578+
579+
// ...
580+
],
581+
```
582+
556583
### Octane support
557584

558585
Starting with 13.3.0, this package supports [Laravel Octane](https://laravel.com/docs/octane) out of the box.

src/Queue/Connection/ConfigFactory.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public static function make(array $config = []): AMQPConnectionConfig
3838
self::getHostFromConfig($connectionConfig, $config);
3939
self::getHeartbeatFromConfig($connectionConfig, $config);
4040
self::getNetworkProtocolFromConfig($connectionConfig, $config);
41+
self::getTimeoutsFromConfig($connectionConfig, $config);
4142
});
4243
}
4344

@@ -99,4 +100,27 @@ protected static function getNetworkProtocolFromConfig(AMQPConnectionConfig $con
99100
$connectionConfig->setNetworkProtocol($networkProtocol);
100101
}
101102
}
103+
104+
protected static function getTimeoutsFromConfig(AMQPConnectionConfig $connectionConfig, array $config): void
105+
{
106+
$connectionTimeout = Arr::get($config, self::CONFIG_OPTIONS.'.connection_timeout');
107+
if (is_numeric($connectionTimeout) && floatval($connectionTimeout) >= 0) {
108+
$connectionConfig->setConnectionTimeout((float) $connectionTimeout);
109+
}
110+
111+
$readTimeout = Arr::get($config, self::CONFIG_OPTIONS.'.read_timeout');
112+
if (is_numeric($readTimeout) && floatval($readTimeout) >= 0) {
113+
$connectionConfig->setReadTimeout((float) $readTimeout);
114+
}
115+
116+
$writeTimeout = Arr::get($config, self::CONFIG_OPTIONS.'.write_timeout');
117+
if (is_numeric($writeTimeout) && floatval($writeTimeout) >= 0) {
118+
$connectionConfig->setWriteTimeout((float) $writeTimeout);
119+
}
120+
121+
$chanelRpcTimeout = Arr::get($config, self::CONFIG_OPTIONS.'.channel_rpc_timeout');
122+
if (is_numeric($chanelRpcTimeout) && floatval($chanelRpcTimeout) >= 0) {
123+
$connectionConfig->setChannelRPCTimeout((float) $chanelRpcTimeout);
124+
}
125+
}
102126
}

0 commit comments

Comments
 (0)