/ / Як досягти багатопоточність в рубінах на рейках? і який спосіб отримати нитку, щоб вбити або прокинутися? - рубінові рельєфи, рубінові, багатопоточні, рубінові рейки-4, рубіни на рейках-4.1

Як досягти багатопоточність в рубінах на рейках? і який спосіб отримати нитку, щоб вбити або прокинутися? - рубінові рельєфи, рубінові, багатопоточні, рубінові рейки-4, рубіни на рейках-4.1

Моя проблема полягає в тому, що: У мене є таблиця робочих місць і з кожною роботою ініційовано одну гілку. У цих потоках вони виконують певну обробку та відправляють SMS і чекають 2 хвилини. Це максимальний час. Тепер, якщо користувач відповідає на SMS, то я хочу перервати відповідний потік, щоб зробити решту обробки.

Так чи є щось, за допомогою якого я можу знайти нитку за назвою чи ідентифікатором з цього списку?

Відповіді:

0 для відповіді № 1

Я думаю, ви можете послатися на цю відповідь Створення таймера в Ruby

user_input = Thread.new do
print "Enter something: "
Thread.current[:value] = gets.chomp
end

timer = Thread.new { sleep 3; user_input.kill; puts }

user_input.join
if user_input[:value]
puts "User entered #{user_input[:value]}"
else
puts "Timer expired"
end

якщо термін дії таймера закінчився, відправте його іншому.