[#406419] Recursion with Hash — Love U Ruby <lists@...>

h = {a: {b: {c: 23}}}

14 messages 2013/04/01

[#406465] Exclusively for Rubyists, a community on Facebook — "senthil k." <lists@...>

I was surprised to know that there is no community for Ruby Programming

12 messages 2013/04/03
[#406467] Re: Exclusively for Rubyists, a community on Facebook — Marc Heiler <lists@...> 2013/04/04

Thing is, some people do not use Facebook and never will.

[#406528] Role of bundler in creating and installing a gem — Jon Cairns <lists@...>

Hi fellow rubyists,

11 messages 2013/04/05

[#406555] How do you know what the main file in Ruby Projects is? — peteV <pete0verse@...>

Hi Ruby people,

18 messages 2013/04/05
[#406558] Re: How do you know what the main file in Ruby Projects is? — "Carlo E. Prelz" <fluido@...> 2013/04/05

Subject: How do you know what the main file in Ruby Projects is?

[#406560] Re: How do you know what the main file in Ruby Projects is? — Hans Mackowiak <lists@...> 2013/04/05

Carlo E. Prelz wrote in post #1104616:

[#406562] Re: How do you know what the main file in Ruby Projects is? — "D. Deryl Downey" <me@...> 2013/04/05

Actually its not wrong. What it does is explicitly state which ruby

[#406563] Re: How do you know what the main file in Ruby Projects is? — Matt Lawrence <matt@...> 2013/04/05

On Sat, 6 Apr 2013, D. Deryl Downey wrote:

[#406564] Re: How do you know what the main file in Ruby Projects is? — Hans Mackowiak <lists@...> 2013/04/05

Matt Lawrence wrote in post #1104625:

[#406566] Re: How do you know what the main file in Ruby Projects is? — Matt Lawrence <matt@...> 2013/04/05

On Sat, 6 Apr 2013, Hans Mackowiak wrote:

[#406570] Re: How do you know what the main file in Ruby Projects is? — Matthew Mongeau <halogenandtoast@...> 2013/04/05

I'm interested in the issue with using env, but I find you explanation a but=

[#406600] Mapping string data ptr to buffer in ffi — se gm <lists@...>

I'm trying to implement some "shared memory" in Ruby, but I'm not sure

20 messages 2013/04/08

[#406683] confusion with Struct class — Love U Ruby <lists@...>

I went to there - http://www.ruby-doc.org/core-2.0/Struct.html but the

29 messages 2013/04/11
[#406694] Re: confusion with Struct class — Love U Ruby <lists@...> 2013/04/11

Why does every time the has value getting changed,while the instance

[#406762] Why does #content method in nokogiri not printing the full text? — Love U Ruby <lists@...>

Here is the documentation: http://www.rubydoc.info/gems/nokogiri/frames

19 messages 2013/04/14
[#406764] Re: Why does #content method in nokogiri not printing the full text? — tamouse mailing lists <tamouse.lists@...> 2013/04/14

On Sun, Apr 14, 2013 at 11:19 AM, Love U Ruby <lists@ruby-forum.com> wrote:

[#406874] Input: sentence Modify: words Output: modified sentence — Philip Parker <lists@...>

I am new to Ruby. This is a programming interview question to use any

11 messages 2013/04/19

[#406912] Tap method : good or bad practice ? — Sébastien Durand <lists@...>

Hi all !

18 messages 2013/04/21

[#406936] BEGINNER -CLASS QUERY — shaik farooq <lists@...>

HEY as we know that the object conatins the instance variables that are

22 messages 2013/04/22

[#406966] copying files syntax with FileUtils.rb (grr.) — Thomas Luedeke <lists@...>

In my Ruby scripting, there is probably no greater and chronic source of

10 messages 2013/04/23

[#406969] what is the $- magic global? — Matthew Kerwin <lists@...>

I've been searching for the past hour or so, including manually stepping

13 messages 2013/04/24

[#407059] New Rexx like data structure — Peter Hickman <peterhickman386@...>

This is just something that I have been playing with for some time but I

11 messages 2013/04/29

[#407070] writing lines to a file — peteV <pete0verse@...>

I have a text file with on every line a magic card number and such info

13 messages 2013/04/29

Re: handle http request timed out

From: tamouse mailing lists <tamouse.lists@...>
Date: 2013-04-16 02:54:43 UTC
List: ruby-talk #406806
On Mon, Apr 15, 2013 at 3:56 PM, Fosiul Alam <lists@ruby-forum.com> wrote:
> Hi
> i have written a script which connects to a website and read from their
> but some time that website is soo slow that it gets time out .
> so i have done this
>
>
> http = Net::HTTP.new(uri.host, uri.port)
> http.read_timeout = 500
> request = Net::HTTP::Get.new(uri.request_uri)
>
> begin
> response = http.request(request)
> code=response.code
> log_info("Response Code - #{code}")
>
> end until response.code == "200"
>
>
> But it gets time out .. now i can increase the http time out but thats
> not a solution
>
> is not there any way that i can do ..
>
> As long as response.code == 200, it will keep try to get request without
> producing time out or any error...
> i thought the code i wrote it will do that job , but it does not ...
> where i am doing wrong ??
> or how can i get what i am looking for ??

With this loop, you are making a new request each time, which starts
the whole retrieval process over again. AFAIK, the only way to make
this work is by setting the timeout long enough to retrieve all the
data. What you can do is set the get request inside a begin-rescue-end
block and use a progressive timeout backoff and a retry. Limit the
number of retries so you don't end up with an infinite loop. Robert
Klemme showed me how to do this with another sort of request in an
earlier message by passing a block to a method. I implemented it
something like this:


def retry_http_call(http,limit=3,backoff=500,&block)

  tries = 0

  begin
    yield http
  rescue Exception => e
    tries += 1
    http.read_timeout = backoff * tries
    retry if tries < limit
  end

end

Then you can use it like so:

Net::HTTP.start(uri.host, uri.port) do |http|

  request = Net::HTTP::Get.new(uri.request_uri)
  response = retry_http_call(http, 5) { |http| http.request(request) }

end

You may want to fiddle with the number of retries and the progressive
back off increment to see what is optimal for your implementation.


(Robert, if you would kindly check me on this?)

In This Thread

Prev Next