【发布时间】:2010-11-17 15:07:38
【问题描述】:
我在控制器中有一个操作可能需要很长时间才能完成。
我想防止两个用户同时运行它。
到目前为止,我在开始时在数据库中插入了一条记录,并在完成后将其删除。
有什么更好的方法来做到这一点?
【问题讨论】:
标签: ruby-on-rails model-view-controller ruby-on-rails-3 concurrency
我在控制器中有一个操作可能需要很长时间才能完成。
我想防止两个用户同时运行它。
到目前为止,我在开始时在数据库中插入了一条记录,并在完成后将其删除。
有什么更好的方法来做到这一点?
【问题讨论】:
标签: ruby-on-rails model-view-controller ruby-on-rails-3 concurrency
您可以将其移至后台,例如 DelayedJob 以避免锁定您的应用程序,或者您可以使您的数据库驱动的锁定更通用。该策略似乎并不太合理,尤其是如果它可以防止您的应用程序崩溃。
【讨论】: