目前,我们的应用程序运行有时会失败,因为我们的gitserver是非常不负责任的。

begin
  repository = Git.clone(remote_repo,deploy_script_root, { })
...
rescue Exception => e
  log.error e
  raise "Could not export deploy scripts: #{e.message}"
end

错误:无法连接到gitserver:80;访问http://gitserver时正在进行操作
我想知道如何让ruby多次重试这个命令以避免中断我们的运行。

最佳答案

使用retry

begin
  retries ||= 0
  repository = Git.clone(remote_repo,deploy_script_root, { })
...
rescue Exception => e
  log.error e
  retries += 1
  retry if (retries <= 5)
  raise "Could not export deploy scripts: #{e.message}"
end

07-24 12:46