如何在rails上的ruby中实现多线程?什么是获取线程来杀死或唤醒它的方法?

时间:2014-10-16 18:17:20

标签: ruby-on-rails ruby multithreading ruby-on-rails-4 ruby-on-rails-4.1

我的问题是:我有一个工作表,每个工作都会启动一个线程。在这些线程中,他们进行一些处理并发送短信并等待2分钟。这是最长时间。现在,如果用户响应短信,那么我想中断相应的线程来完成其余的处理。

那么有什么东西可以通过名单或ID从该列表中找到线程吗?

1 个答案:

答案 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

如果计时器已过期,则将其发送给下一个人。