防止长时间运行的ActionController并发执行

时间:2010-11-17 15:07:39

标签: ruby-on-rails model-view-controller ruby-on-rails-3 concurrency

我在控制器中有一个动作可能需要很长时间才能完成。

我想阻止两个用户同时运行它。

到目前为止,我在启动时在数据库中插入一条记录,并在完成后删除它。

有什么更好的方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

你可以将它移到后台的某些东西,如DelayedJob,以避免锁定你的应用程序,或者你可以使你的数据库驱动的锁更通用。这种策略似乎并不太合理,特别是如果它阻止你的应用程序崩溃。