mirror of
https://github.com/fluencelabs/redis
synced 2025-03-20 09:30:55 +00:00
redis-trib.rb: --timeout XXXXX option added to fix and reshard commands. Defaults to 15000 milliseconds
This commit is contained in:
parent
adc2fe6993
commit
3d254e05f4
@ -288,6 +288,7 @@ class RedisTrib
|
|||||||
@nodes = []
|
@nodes = []
|
||||||
@fix = false
|
@fix = false
|
||||||
@errors = []
|
@errors = []
|
||||||
|
@timeout = 15000
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_arity(req_args, num_args)
|
def check_arity(req_args, num_args)
|
||||||
@ -819,11 +820,11 @@ class RedisTrib
|
|||||||
break if keys.length == 0
|
break if keys.length == 0
|
||||||
keys.each{|key|
|
keys.each{|key|
|
||||||
begin
|
begin
|
||||||
source.r.client.call(["migrate",target.info[:host],target.info[:port],key,0,15000])
|
source.r.client.call(["migrate",target.info[:host],target.info[:port],key,0,@timeout])
|
||||||
rescue => e
|
rescue => e
|
||||||
if o[:fix] && e.to_s =~ /BUSYKEY/
|
if o[:fix] && e.to_s =~ /BUSYKEY/
|
||||||
xputs "*** Target key #{key} exists. Replacing it for FIX."
|
xputs "*** Target key #{key} exists. Replacing it for FIX."
|
||||||
source.r.client.call(["migrate",target.info[:host],target.info[:port],key,0,15000,:replace])
|
source.r.client.call(["migrate",target.info[:host],target.info[:port],key,0,@timeout,:replace])
|
||||||
else
|
else
|
||||||
puts ""
|
puts ""
|
||||||
xputs "[ERR] #{e}"
|
xputs "[ERR] #{e}"
|
||||||
@ -853,6 +854,8 @@ class RedisTrib
|
|||||||
|
|
||||||
def fix_cluster_cmd(argv,opt)
|
def fix_cluster_cmd(argv,opt)
|
||||||
@fix = true
|
@fix = true
|
||||||
|
@timeout = opt['timeout'].to_i if opt['timeout']
|
||||||
|
|
||||||
load_cluster_info_from_node(argv[0])
|
load_cluster_info_from_node(argv[0])
|
||||||
check_cluster
|
check_cluster
|
||||||
end
|
end
|
||||||
@ -865,6 +868,8 @@ class RedisTrib
|
|||||||
exit 1
|
exit 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@timeout = opt['timeout'].to_i if opt['timeout'].to_i
|
||||||
|
|
||||||
# Get number of slots
|
# Get number of slots
|
||||||
if opt['slots']
|
if opt['slots']
|
||||||
numslots = opt['slots'].to_i
|
numslots = opt['slots'].to_i
|
||||||
@ -1186,7 +1191,7 @@ class RedisTrib
|
|||||||
print "Migrating #{k} to #{target}: "
|
print "Migrating #{k} to #{target}: "
|
||||||
STDOUT.flush
|
STDOUT.flush
|
||||||
begin
|
begin
|
||||||
cmd = ["migrate",target.info[:host],target.info[:port],k,0,15000]
|
cmd = ["migrate",target.info[:host],target.info[:port],k,0,@timeout]
|
||||||
cmd << :copy if use_copy
|
cmd << :copy if use_copy
|
||||||
cmd << :replace if use_replace
|
cmd << :replace if use_replace
|
||||||
source.client.call(cmd)
|
source.client.call(cmd)
|
||||||
@ -1350,7 +1355,8 @@ ALLOWED_OPTIONS={
|
|||||||
"create" => {"replicas" => true},
|
"create" => {"replicas" => true},
|
||||||
"add-node" => {"slave" => false, "master-id" => true},
|
"add-node" => {"slave" => false, "master-id" => true},
|
||||||
"import" => {"from" => :required, "copy" => false, "replace" => false},
|
"import" => {"from" => :required, "copy" => false, "replace" => false},
|
||||||
"reshard" => {"from" => true, "to" => true, "slots" => true, "yes" => false}
|
"reshard" => {"from" => true, "to" => true, "slots" => true, "yes" => false, "timeout" => 15000},
|
||||||
|
"fix" => {"timeout" => 15000},
|
||||||
}
|
}
|
||||||
|
|
||||||
def show_help
|
def show_help
|
||||||
|
Loading…
x
Reference in New Issue
Block a user