Моя проблема полягає в тому, що: У мене є таблиця робочих місць і з кожною роботою ініційовано одну гілку. У цих потоках вони виконують певну обробку та відправляють 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
якщо термін дії таймера закінчився, відправте його іншому.