diff --git a/src/Queue/Connection/ConfigFactory.php b/src/Queue/Connection/ConfigFactory.php index 7783b9cd..de7b9c4d 100644 --- a/src/Queue/Connection/ConfigFactory.php +++ b/src/Queue/Connection/ConfigFactory.php @@ -38,6 +38,7 @@ public static function make(array $config = []): AMQPConnectionConfig self::getHostFromConfig($connectionConfig, $config); self::getHeartbeatFromConfig($connectionConfig, $config); self::getNetworkProtocolFromConfig($connectionConfig, $config); + self::getReadWriteTimeoutFromConfig($connectionConfig, $config); }); } @@ -99,4 +100,18 @@ protected static function getNetworkProtocolFromConfig(AMQPConnectionConfig $con $connectionConfig->setNetworkProtocol($networkProtocol); } } + + protected static function getReadWriteTimeoutFromConfig(AMQPConnectionConfig $connectionConfig, array $config): void + { + $readTimeout = Arr::get($config, self::CONFIG_OPTIONS.'.read_timeout'); + $writeTimeout = Arr::get($config, self::CONFIG_OPTIONS.'.write_timeout'); + + if (is_numeric($readTimeout) && intval($readTimeout) > 0) { + $connectionConfig->setReadTimeout((int) $readTimeout); + } + + if (is_numeric($writeTimeout) && intval($writeTimeout) > 0) { + $connectionConfig->setWriteTimeout((int) $readTimeout); + } + } }