如何锁定rails中的操作,以便只有一个用户可以在不使用db的情况下访问它

时间:2012-04-24 13:46:14

标签: ruby-on-rails

我有这种奇怪的情况,我想一次只限一个用户而不使用db吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

也许你可以使用类变量。类变量不仅适用于一个实例,它们在类的每个实例中都是相同的。

def do_something
  if @@locked
    render text: "Sorry, somebody else working here."
  else
    @@locked = true

    # do the stuff you need to do here

    @@locked = false
  end
end

答案 1 :(得分:1)

require FileUtils
def lockable_action
  if File.exists? "/tmp/lock"
     # sorry, I'm locked
  else
     File.open("/tmp/lock","w") {|f| f.write("1")
     # do your thing
     FileUtils.rm "/tmp/lock"
  end
endk