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