Используйте класс ruby ​​Timeout в качестве фонового потока - PullRequest
2 голосов
/ 02 апреля 2010

Я нашел класс Ruby Timeout очень полезным для моего проекта.

Но мне нужно запустить блок кода в фоновом режиме и сохранить его в таймауте.

Например

Timeout :: timeout (2) {block.call}

Как это сделать?

1 Ответ

3 голосов
/ 02 апреля 2010
require 'timeout'

t = Thread.new {
  Timeout.timeout(5) {
    while(true) do
      puts 'a'
      sleep 1
    end
  }
}
t.join

Тем не менее, Timeout выдаст исключение по истечении срока, но я думаю, что вы в порядке с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...