Skip to content

Commit d06427b

Browse files
authored
Merge pull request #612 from Triplkrypl/master
load timeouts from laravel config
2 parents ca6cd22 + aaad79f commit d06427b

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
@@ -529,6 +529,33 @@ Available protocols : `tcp`, `ssl`, `tls`
529529
],
530530
```
531531

532+
### Network Timeouts
533+
534+
For network timeouts configuration you can use option parameters.
535+
All float values are in seconds and zero value can mean infinite timeout.
536+
Example contains default values.
537+
538+
```php
539+
'connections' => [
540+
// ...
541+
542+
'rabbitmq' => [
543+
// ...
544+
545+
'options' => [
546+
// ...
547+
548+
'connection_timeout' => 3.0,
549+
'read_timeout' => 3.0,
550+
'write_timeout' => 3.0,
551+
'channel_rpc_timeout' => 0.0,
552+
],
553+
],
554+
555+
// ...
556+
],
557+
```
558+
532559
### Octane support
533560

534561
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)