I am using a TCPSocket and I want the script to restart if the
connection times out. I have tried doing it myself and searched around
everywhere for a solution but I have had no luck… Any help would be
great
tia
Lee
I am using a TCPSocket and I want the script to restart if the
connection times out. I have tried doing it myself and searched around
everywhere for a solution but I have had no luck… Any help would be
great
tia
Lee
On 11/11/07, Lee J. [email protected] wrote:
I am using a TCPSocket and I want the script to restart if the
connection times out. I have tried doing it myself and searched around
everywhere for a solution but I have had no luck… Any help would be
great
What do you mean by “the connection times out”? Do you mean that the
connection has no read or write activity for some interval of time?
If you need to do that, then the Ruby/EventMachine library has that
ability.
You’ll need to rearrange your code to go this route, so perhaps someone
else
will have a less invasive solution. If not, then look at EventMachine.
Francis C. wrote:
What do you mean by “the connection times out”? Do you mean that the
connection has no read or write activity for some interval of time?
Yes, basically
If you need to do that, then the Ruby/EventMachine library has that
ability.
You’ll need to rearrange your code to go this route, so perhaps someone
else
will have a less invasive solution. If not, then look at EventMachine.
Uh, I am editing an old program of mine which is quite large, about
1.4k+ lines, so I am trying to do it the least invasive way possible… I
appreciate your input so quickly though. Perhaps this is the only route.
Lee
Lee J. [email protected] writes:
Q> Francis C. wrote:
What do you mean by “the connection times out”? Do you mean that the
connection has no read or write activity for some interval of time?
Yes, basically
You can adjust the SO_RCVTIMEO and SO_SNDTIMEO socket options using
Socket#{get,set}sockopts.
However, they are susceptible to trickle attack. For example, if you
set the receive timeout to 30 seconds, then the sender can send just
one packet every 30 seconds, tying up resources on your end.
The proper solution requires application-level enforcement of
timeout. You can use the timeout library for the least invasive
mechanism to even changing the core mechanism to Ruby/EventMachine.
YS.
If you’re not worried about scaling then
Timeout::timeout(30) {
do stuff }
or
Thread.new {
sleep 30
if hasnt_done_anything
raise on it # scary!
end
}
maybe
Lee J. wrote:
I am using a TCPSocket and I want the script to restart if the
connection times out. I have tried doing it myself and searched around
everywhere for a solution but I have had no luck… Any help would be
greattia
Lee
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs