Тайм-аут спасения с SystemTimer - PullRequest
1 голос
/ 11 февраля 2011

Я использую гем 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

Но время ожидания последнего исключения :: Ошибка никогда не срабатывает.

Ответы [ 2 ]

1 голос
/ 12 февраля 2011

Почему бы не использовать Timeout , который поставляется с 1.9.2 и предназначен для этого?

require 'timeout'
status = Timeout::timeout(5) {
  # Something that should be interrupted if it takes too much time...
}
0 голосов
/ 11 февраля 2011

Попробуйте: (по вашей ссылке)

class TimedOut < StandardError
end

begin
  SystemTimer.timeout_after(10.seconds, TimedOut) do
    # ...
  end
rescue TimedOut
  # ...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...