Я использую гем SystemTimer для решения проблем тайм-аута. https://github.com/ph7/system-timer
Я не могу найти способ отловить исключение при превышении времени ожидания
begin SystemTimer.timeout_after(10.seconds) do # facebook api rest_graph.fql(query) end rescue RestGraph::Error::InvalidAccessToken return nil rescue Timeout::Error # never executed end
Но время ожидания последнего исключения :: Ошибка никогда не срабатывает.
Почему бы не использовать Timeout , который поставляется с 1.9.2 и предназначен для этого?
require 'timeout' status = Timeout::timeout(5) { # Something that should be interrupted if it takes too much time... }
Попробуйте: (по вашей ссылке)
class TimedOut < StandardError end begin SystemTimer.timeout_after(10.seconds, TimedOut) do # ... end rescue TimedOut # ... end