@@ -257,15 +257,15 @@ def send_config_command(method, command, args, &block)
257
257
case ::RedisClient ::Cluster ::NormalizedCmdName . instance . get_by_subcommand ( command )
258
258
when 'resetstat' , 'rewrite' , 'set'
259
259
@node . call_all ( method , command , args ) . first . then ( &TSF . call ( block ) )
260
- else assign_node ( command ) . public_send ( method , * args , command , &block )
260
+ else try_send ( assign_node ( command ) , method , command , args , &block )
261
261
end
262
262
end
263
263
264
264
def send_memory_command ( method , command , args , &block )
265
265
case ::RedisClient ::Cluster ::NormalizedCmdName . instance . get_by_subcommand ( command )
266
266
when 'stats' then @node . call_all ( method , command , args , &block )
267
267
when 'purge' then @node . call_all ( method , command , args ) . first . then ( &TSF . call ( block ) )
268
- else assign_node ( command ) . public_send ( method , * args , command , &block )
268
+ else try_send ( assign_node ( command ) , method , command , args , &block )
269
269
end
270
270
end
271
271
@@ -274,7 +274,7 @@ def send_client_command(method, command, args, &block)
274
274
when 'list' then @node . call_all ( method , command , args , &block ) . flatten
275
275
when 'pause' , 'reply' , 'setname'
276
276
@node . call_all ( method , command , args ) . first . then ( &TSF . call ( block ) )
277
- else assign_node ( command ) . public_send ( method , * args , command , &block )
277
+ else try_send ( assign_node ( command ) , method , command , args , &block )
278
278
end
279
279
end
280
280
@@ -287,8 +287,9 @@ def send_cluster_command(method, command, args, &block)
287
287
when 'getkeysinslot'
288
288
raise ArgumentError , command . join ( ' ' ) if command . size != 4
289
289
290
- find_node ( @node . find_node_key_of_replica ( command [ 2 ] ) ) . public_send ( method , *args , command , &block )
291
- else assign_node ( command ) . public_send ( method , *args , command , &block )
290
+ node = find_node ( @node . find_node_key_of_replica ( command [ 2 ] ) )
291
+ try_send ( node , method , command , args , &block )
292
+ else try_send ( assign_node ( command ) , method , command , args , &block )
292
293
end
293
294
end
294
295
@@ -300,7 +301,7 @@ def send_script_command(method, command, args, &block) # rubocop:disable Metrics
300
301
@node . call_primaries ( method , command , args ) . first . then ( &TSF . call ( block ) )
301
302
when 'exists'
302
303
@node . call_all ( method , command , args ) . transpose . map { |arr | arr . any? ( &:zero? ) ? 0 : 1 } . then ( &TSF . call ( block ) )
303
- else assign_node ( command ) . public_send ( method , * args , command , &block )
304
+ else try_send ( assign_node ( command ) , method , command , args , &block )
304
305
end
305
306
end
306
307
@@ -318,7 +319,7 @@ def send_pubsub_command(method, command, args, &block) # rubocop:disable Metrics
318
319
when 'shardnumsub'
319
320
@node . call_replicas ( method , command , args ) . reject ( &:empty? ) . map { |e | Hash [ *e ] }
320
321
. reduce ( { } ) { |a , e | a . merge ( e ) { |_ , v1 , v2 | v1 + v2 } } . then ( &TSF . call ( block ) )
321
- else assign_node ( command ) . public_send ( method , * args , command , &block )
322
+ else try_send ( assign_node ( command ) , method , command , args , &block )
322
323
end
323
324
end
324
325
0 commit comments