0

我有一个 Rails 应用程序,有时需要长时间导入新数据。在此导入运行时,用户不应执行任何“写入”任务(即创建新项目等)。导入作业正在通过 DelayedJob 运行

所以基本上我需要后台任务来做到这一点:

1) 将应用程序状态设置为“正在导入 - 应用程序现在是只读的”

2) 运行导入

3) 将应用程序状态设置为“一切就绪 - 应用程序现在再次正常运行”

简单地说 - 只是一个布尔标志,但是一个应该在所有进程中全局可用的标志。问题是:实现这一点的最佳实践是什么?

我可以轻松地创建一个名为 ApplicationState 的 ActiveRecord 模型,并将此标志作为一个字段。然而,这似乎有点矫枉过正。

因此,任何替代方案将不胜感激。

/ 卡斯滕

4

2 回答 2

1

我最终创造了这个小宝宝:

https://gist.github.com/carstengehling/6495127

为此目的工作得很好。有点像推出,虽然不是用户特定的,并且使用 AR 代替 Redis。

任何觉得这种方法很有趣的人,请告诉我——我可以做一个宝石。

于 2013-09-09T12:49:34.373 回答
0

这是Rollout的一个很好的用例。

于 2013-09-06T10:17:33.440 回答