
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 + loop_main("#{hostname}-#{i}") end pids << pid end -- 2.23.0