Skip to content

Commit cdfad6f

Browse files
committed
Attempt to use threading to control elbs
1 parent a7fa5e6 commit cdfad6f

File tree

2 files changed

+32
-15
lines changed

2 files changed

+32
-15
lines changed

lib/capify-ec2.rb

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -309,17 +309,25 @@ def deregister_instance_from_named_elbs_by_dns(server_dns, load_balancer_names)
309309
instance = get_instance_by_dns(server_dns)
310310

311311
lbs = []
312+
threads = []
313+
312314
for load_balancer_name in load_balancer_names do
313-
load_balancer = get_load_balancer_by_name(load_balancer_name)
315+
threads << Thread.new({
316+
load_balancer = get_load_balancer_by_name(load_balancer_name)
314317

315-
if load_balancer
316-
puts "[Capify-EC2] Removing instance from named ELB '#{load_balancer.id}'..."
318+
if load_balancer
319+
puts "[Capify-EC2] Removing instance from named ELB '#{load_balancer.id}'..."
317320

318-
result = elb.deregister_instances_from_load_balancer(instance.id, load_balancer.id)
319-
raise "Unable to remove instance from ELB '#{load_balancer.id}'..." unless result.status == 200
321+
result = elb.deregister_instances_from_load_balancer(instance.id, load_balancer.id)
322+
raise "Unable to remove instance from ELB '#{load_balancer.id}'..." unless result.status == 200
320323

321-
lbs << load_balancer
322-
end
324+
lbs << load_balancer
325+
end
326+
})
327+
end
328+
329+
for t in threads do
330+
t.join
323331
end
324332

325333
lbs

lib/capify-ec2/capistrano.rb

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,15 +176,24 @@ def capify_ec2
176176
end
177177
end
178178

179+
threads = []
180+
179181
for load_balancer_to_reregister in load_balancers_to_reregister do
180-
puts "[Capify-EC2] Starting registration of ELB '#{load_balancer_to_reregister.id}'"
181-
reregistered = capify_ec2.reregister_instance_with_elb_by_dns(server_dns, load_balancer_to_reregister, 60)
182-
if reregistered
183-
puts "[Capify-EC2] Instance registration with ELB '#{load_balancer_to_reregister.id}' successful.".green.bold
184-
else
185-
puts "[Capify-EC2] Instance registration with ELB '#{load_balancer_to_reregister.id}' failed!".red.bold
186-
raise CapifyEC2RollingDeployError.new("ELB registration timeout exceeded", server_dns)
187-
end
182+
threads << Thread.new({
183+
puts "[Capify-EC2] Starting registration of ELB '#{load_balancer_to_reregister.id}'"
184+
185+
reregistered = capify_ec2.reregister_instance_with_elb_by_dns(server_dns, load_balancer_to_reregister, 60)
186+
if reregistered
187+
puts "[Capify-EC2] Instance registration with ELB '#{load_balancer_to_reregister.id}' successful.".green.bold
188+
else
189+
puts "[Capify-EC2] Instance registration with ELB '#{load_balancer_to_reregister.id}' failed!".red.bold
190+
raise CapifyEC2RollingDeployError.new("ELB registration timeout exceeded", server_dns)
191+
end
192+
})
193+
end
194+
195+
for t in threads do
196+
t.join
188197
end
189198

190199
puts "[Capify-EC2] Deployment successful to #{instance_dns_with_name_tag(server_dns)}.".green.bold

0 commit comments

Comments
 (0)