Я занимаюсь разработкой небольшого приложения, которое отправляет XML в какой-либо веб-сервис.
Это делается с помощью Net :: HTTP :: Post :: Post. Однако поставщик услуг рекомендует использовать повторное подключение.
Что-то вроде:
1-й запрос не выполняется -> повторите попытку через 2 секунды
2-й запрос не выполняется -> повторите попытку через 5 секунд
3-й запрос не выполняется -> повторите попытку через 10 секунд
...
Какой хороший подход для этого? Просто запустить следующий фрагмент кода в цикле, перехватить исключение и запустить его снова через некоторое время? Или есть какой-нибудь другой умный способ сделать это? Может быть, сетевой пакет даже имеет некоторые встроенные функции, о которых я не знаю?
url = URI.parse("http://some.host")
request = Net::HTTP::Post.new(url.path)
request.body = xml
request.content_type = "text/xml"
#run this line in a loop??
response = Net::HTTP.start(url.host, url.port) {|http| http.request(request)}
Большое спасибо, всегда ценю вашу поддержку.
Мэтт