[why] when run multi-docker job on physical machine, run 50 client to request job, if server down or error like Connection refused. these client will exit. when the server recovers, need to run these client again.
[how] add exception handing to ensure all client does not exit --- providers/docker/docker.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/providers/docker/docker.rb b/providers/docker/docker.rb index c241d3c..2239930 100755 --- a/providers/docker/docker.rb +++ b/providers/docker/docker.rb @@ -88,6 +88,19 @@ def main(hostname) run(hostname, load_path, hash) end
+def loop_main(hostname) + loop do + begin + main(hostname) + rescue StandardError => e + puts e.message + sleep 10 + ensure + sleep 5 + end + end +end + def save_pid(pids) FileUtils.cd("#{ENV['CCI_SRC']}/providers") f = File.new('dc.pid', 'a') @@ -99,10 +112,7 @@ def multi_docker(hostname, nr_container) pids = [] nr_container.to_i.times do |i| pid = Process.fork do - loop do - main("#{hostname}-#{i}") - sleep 5 - end + loop_main("#{hostname}-#{i}") end pids << pid end
On Mon, Oct 19, 2020 at 10:03:23AM +0800, Xiao Shenwei wrote:
[why] when run multi-docker job on physical machine, run 50 client to request
^-- clients
job, if server down or error like Connection refused. these client will
^-- ditto
exit. when the server recovers, need to run these client again.
^-- ditto
[how] add exception handing to ensure all client does not exit
where is your Signed-off-by?
providers/docker/docker.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/providers/docker/docker.rb b/providers/docker/docker.rb index c241d3c..2239930 100755 --- a/providers/docker/docker.rb +++ b/providers/docker/docker.rb @@ -88,6 +88,19 @@ def main(hostname) run(hostname, load_path, hash) end
+def loop_main(hostname)
- loop do
- begin
main(hostname)
- rescue StandardError => e
puts e.message
sleep 10
- ensure
sleep 5
- end
- end
+end
def save_pid(pids) FileUtils.cd("#{ENV['CCI_SRC']}/providers") f = File.new('dc.pid', 'a') @@ -99,10 +112,7 @@ def multi_docker(hostname, nr_container) pids = [] nr_container.to_i.times do |i| pid = Process.fork do
loop do
main("#{hostname}-#{i}")
sleep 5
end
end pids << pid endloop_main("#{hostname}-#{i}")
-- 2.23.0
On Mon, Oct 19, 2020 at 10:28:26AM +0800, Yu Chuan wrote:
On Mon, Oct 19, 2020 at 10:03:23AM +0800, Xiao Shenwei wrote:
[why] when run multi-docker job on physical machine, run 50 client to request
^-- clients
job, if server down or error like Connection refused. these client will
^-- ditto
exit. when the server recovers, need to run these client again.
^-- ditto
[how] add exception handing to ensure all client does not exit
where is your Signed-off-by?
forgot it
Thanks, Shenwei
providers/docker/docker.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/providers/docker/docker.rb b/providers/docker/docker.rb index c241d3c..2239930 100755 --- a/providers/docker/docker.rb +++ b/providers/docker/docker.rb @@ -88,6 +88,19 @@ def main(hostname) run(hostname, load_path, hash) end
+def loop_main(hostname)
- loop do
- begin
main(hostname)
- rescue StandardError => e
puts e.message
sleep 10
- ensure
sleep 5
- end
- end
+end
def save_pid(pids) FileUtils.cd("#{ENV['CCI_SRC']}/providers") f = File.new('dc.pid', 'a') @@ -99,10 +112,7 @@ def multi_docker(hostname, nr_container) pids = [] nr_container.to_i.times do |i| pid = Process.fork do
loop do
main("#{hostname}-#{i}")
sleep 5
end
end pids << pid endloop_main("#{hostname}-#{i}")
-- 2.23.0
On Mon, Oct 19, 2020 at 10:03:23AM +0800, Xiao Shenwei wrote:
[why] when run multi-docker job on physical machine, run 50 client to request job, if server down or error like Connection refused. these client will exit. when the server recovers, need to run these client again.
[how] add exception handing to ensure all client does not exit
providers/docker/docker.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/providers/docker/docker.rb b/providers/docker/docker.rb index c241d3c..2239930 100755 --- a/providers/docker/docker.rb +++ b/providers/docker/docker.rb @@ -88,6 +88,19 @@ def main(hostname) run(hostname, load_path, hash) end
+def loop_main(hostname)
- loop do
- begin
main(hostname)
- rescue StandardError => e
puts e.message
The mistake is more obvious when print e.backtrace.
sleep 10
- ensure
sleep 5
It will sleep 15s When an exception is thrown.
Thanks, Xueliang
- end
- end
+end
def save_pid(pids) FileUtils.cd("#{ENV['CCI_SRC']}/providers") f = File.new('dc.pid', 'a') @@ -99,10 +112,7 @@ def multi_docker(hostname, nr_container) pids = [] nr_container.to_i.times do |i| pid = Process.fork do
loop do
main("#{hostname}-#{i}")
sleep 5
end
end pids << pid endloop_main("#{hostname}-#{i}")
-- 2.23.0
On Mon, Oct 19, 2020 at 10:48:31AM +0800, Cao Xueliang wrote:
On Mon, Oct 19, 2020 at 10:03:23AM +0800, Xiao Shenwei wrote:
[why] when run multi-docker job on physical machine, run 50 client to request job, if server down or error like Connection refused. these client will exit. when the server recovers, need to run these client again.
[how] add exception handing to ensure all client does not exit
providers/docker/docker.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/providers/docker/docker.rb b/providers/docker/docker.rb index c241d3c..2239930 100755 --- a/providers/docker/docker.rb +++ b/providers/docker/docker.rb @@ -88,6 +88,19 @@ def main(hostname) run(hostname, load_path, hash) end
+def loop_main(hostname)
- loop do
- begin
main(hostname)
- rescue StandardError => e
puts e.message
The mistake is more obvious when print e.backtrace.
good!
sleep 10
- ensure
sleep 5
It will sleep 15s When an exception is thrown.
right, it should sleep long time
Thanks, Shenwei
Thanks, Xueliang
- end
- end
+end
def save_pid(pids) FileUtils.cd("#{ENV['CCI_SRC']}/providers") f = File.new('dc.pid', 'a') @@ -99,10 +112,7 @@ def multi_docker(hostname, nr_container) pids = [] nr_container.to_i.times do |i| pid = Process.fork do
loop do
main("#{hostname}-#{i}")
sleep 5
end
end pids << pid endloop_main("#{hostname}-#{i}")
-- 2.23.0