@@ -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