我的问题是:我有一个工作表,每个工作都会启动一个线程。在这些线程中,他们进行一些处理并发送短信并等待2分钟。这是最长时间。现在,如果用户响应短信,那么我想中断相应的线程来完成其余的处理。
那么有什么东西可以通过名单或ID从该列表中找到线程吗?
答案 0 :(得分:0)
我想你可以参考这个答案Making a timer in 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
如果计时器已过期,则将其发送给下一个人。