0

新しいデータの長いインポートを実行する必要がある場合がある Rails アプリケーションがあります。このインポートの実行中、ユーザーは「書き込み」タスク (つまり、新しいプロジェクトの作成など) を実行できません。インポート ジョブは DelayedJob を介して実行されています

基本的に、これを行うにはバックグラウンド タスクが必要です。

1) アプリケーションの状態を「インポート中 - アプリケーションは読み取り専用になりました」に設定します

2) インポートを実行

3) アプリケーションの状態を「すべて準備完了 - アプリケーションは正常に機能するようになりました」に設定します。

簡単に言えば、単なるブール値のフラグですが、すべてのプロセスでグローバルに使用できるフラグです。問題は、これを実装するためのベストプラクティスは何ですか?

このフラグをフィールドとして使用して、ApplicationState という ActiveRecord モデルを簡単に作成できます。ただし、これは少しやり過ぎのようです。

したがって、代替案は大歓迎です。

/ カルステン

4

2 に答える 2

1

私は最終的にこの小さな赤ちゃんを作成しました:

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

目的のために非常にうまく機能します。ロールアウトに少し似ていますが、ユーザー固有ではなく、Redis の代わりに AR を使用しています。

このアプローチが面白いと思う他の人は、私に知らせてください - 私は宝石を作ることができます.

于 2013-09-09T12:49:34.373 に答える