Ruby on rails 并发请求:第二个请求无法识别来自第一个请求的更新

Ruby on rails 并发请求:第二个请求无法识别来自第一个请求的更新,ruby-on-rails,concurrency,thin,Ruby On Rails,Concurrency,Thin,我有一个非常长的操作(平均约30秒),发生在一个请求周期中。这并不是什么大问题,因为它很少运行,而且只能通过管理门户运行,否则我会将它推到Resque或其他任何地方 当请求启动且对象未标记时,控制器方法中发生的第一件事是设置标记: def create raise if @foo.flag? @foo.update_attributes! flag: true # perform lengthy operation ensure @foo.update_attributes! f

我有一个非常长的操作(平均约30秒),发生在一个请求周期中。这并不是什么大问题,因为它很少运行,而且只能通过管理门户运行,否则我会将它推到Resque或其他任何地方

当请求启动且对象未标记时,控制器方法中发生的第一件事是设置标记:

def create
  raise if @foo.flag?
  @foo.update_attributes! flag: true
  # perform lengthy operation
ensure
  @foo.update_attributes! flag: false
end
当我启动第一个请求时,它将flag设置为true并开始操作。然后,当我在第一个请求挂起时启动第二个请求时,它不会引发错误,即使我可以在Rails控制台中清楚地看到,
@foo
的标志为true

我的印象是,
update\u属性提交数据库事务,因此后续请求应该可以看到更改。不是这样吗

我只是在用瘦服务器进行开发测试。我有什么办法可以做到这一点吗