@@ -38,6 +38,7 @@ public static function make(array $config = []): AMQPConnectionConfig
38
38
self ::getHostFromConfig ($ connectionConfig , $ config );
39
39
self ::getHeartbeatFromConfig ($ connectionConfig , $ config );
40
40
self ::getNetworkProtocolFromConfig ($ connectionConfig , $ config );
41
+ self ::getTimeoutsFromConfig ($ connectionConfig , $ config );
41
42
});
42
43
}
43
44
@@ -99,4 +100,27 @@ protected static function getNetworkProtocolFromConfig(AMQPConnectionConfig $con
99
100
$ connectionConfig ->setNetworkProtocol ($ networkProtocol );
100
101
}
101
102
}
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
+ }
102
126
}
0 commit comments