Ограниченные по времени вычисления в Ruby - PullRequest
4 голосов
/ 16 февраля 2010

Я хочу запустить задачу в Ruby (скажем) до 10 секунд и убить эту задачу, если она заняла больше времени. Это сделано для предотвращения зависания внешнего процесса. Каков наилучший способ реализации этого? В частности, как бы я написал функцию for_up_to_10_seconds ниже?

loop do
  for_up_to_10_seconds do
    # something
  end
end

1 Ответ

7 голосов
/ 16 февраля 2010

Класс Timeout из стандартной библиотеки - это то, что вы ищете: http://www.ruby -doc.org / core / classes / Timeout.html

loop do
  Timeout.timeout(10) do
    # something
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...