0

私は時々mysqlクエリを実行したいプロジェクトに取り組んでいます。クエリが長すぎます。実際には、ユーザーがリクエストを実行するとクエリが完了します。

多くのユーザーがリクエストを行うと、アプリケーションの応答が遅くなることが懸念されます。そのため、クエリを実行して、クエリの応答を時々ロードし、要求に応じて、クエリを何度も実行する代わりに、コントローラーからのアクションがこの変数を使用するようにします。

いつでも使用してそれを行うにはどうすればよいですか?

予定通り.rb

every 5.minutes do
    runner "variable = Model.method"
end

そしてコントローラーに

def some_action
"the variable should be loaded here"

end
4

1 に答える 1

0

Damien Roche に同意します。クエリの結果をキャッシュする必要があります。しかし、たとえこれがはまれな現象です。したがって、定期的なクエリと、提案したように、キャッシュメカニズムを組み合わせて、クエリ結果を保存し、コントローラーのキャッシュから取得する必要があります。ランナーは別のプロセスであるため、ランナーとアプリの両方で利用できるキャッシュを使用する必要があります。Redis を調べることをお勧めします。ランナーがクエリを実行し、終了時に結果セットを Redis キャッシュに書き込むように動作させるのは非常に簡単なはずです。次に、コントローラーはキャッシュから結果セットを読み取ります。

于 2013-10-24T17:59:56.207 に答える