Bazı web servislerine XML gönderen küçük bir uygulama geliştiriyorum. Bu, Net :: HTTP :: Post :: Post kullanılarak yapılır. Ancak, servis sağlayıcı yeniden bağlanmayı önerir.Ruby Net kullanarak Yeniden Bağlanma Stratejisi Uygulaması
gibi bir şey: 1 isteği başarısız -> 3 isteği başarısız 5 saniye sonra tekrar deneyin - -> 2 isteği başarısız 2 saniye sonra tekrar deneyin> ... 10 saniye sonra tekrar deneyin
neler olur Bunu yapmak için iyi bir yaklaşım mı? Aşağıdaki kod parçasını döngü içinde çalıştırmak, istisnayı yakalamak ve bir süre sonra tekrar çalıştırmak mı? Yoksa bunu yapmanın başka zekice bir yolu var mı? Belki de Net paketinin farkında olmadığım bazı işlevler var mı?
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)}
Çok teşekkürler, desteğiniz için her zaman minnettarız.
Matt
Mükemmel Bununla beraber dönüştürdü alan kodu. Teşekkürler! – Matt
Avdi, bunu test etmenin iyi bir yolu nedir? (rspec veya herhangi birini kullanarak) – Mike
Teşekkürler. Btw 'SomeException', maalesef 'StandardError' olmalıdır, cf: http://stackoverflow.com/questions/5370697/what-s-the-best-way-to-handle-exceptions-from-nethttp. Mükemmel değil, ama en azından bir çizgiye kadar uzanır ve geçici olmayan bir gerçek hata ise yutulmaz. – chesterbr