【问题标题】:Prevent a long-running ActionController from executing concurrently防止长时间运行的 ActionController 并发执行
【发布时间】:2010-11-17 15:07:38
【问题描述】:

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

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

到目前为止,我在开始时在数据库中插入了一条记录,并在完成后将其删除。

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

【问题讨论】:

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


    【解决方案1】:

    您可以将其移至后台,例如 DelayedJob 以避免锁定您的应用程序,或者您可以使您的数据库驱动的锁定更通用。该策略似乎并不太合理,尤其是如果它可以防止您的应用程序崩溃。

    【讨论】:

    • 谢谢!我最终使用了 rake 任务和 cron 来运行我的脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 2022-10-17
    • 1970-01-01
    相关资源
    最近更新 更多