1

特定のユーザー要求中に実行する特に高価な計算があるとします。プラス面は、この計算を前もって実行し、人々がプルできるように一般的なキューにプッシュできることです。

SidekiqRuby/Rails バックエンドで使用して、この結果のキャッシュを特定のレベルまでフルに保つ方法はありますか? この計算の結果をどこに保存しますか?

例えば

  1. サーバーの負荷がかかると、20 セットの結果を計算し、どこかにキャッシュします。
  2. ユーザーの要求に応じて、結果をポップオフして、サーバーの即時応答を可能にします。
  3. 1 セットの結果をバックグラウンドで再生成して、キューに最大 20 個まで埋めます。

明らかに、計算にかかる時間やユーザー リクエストのレートによっては、20 以外の数値を使用する必要があるかもしれませんが、おわかりいただけたと思います。

4

1 に答える 1

0

このプロファイルに実際に適合する計算の種類を知りたいのですが、それはそれほど重要ではありません。

Sidekiq を使用している (または Sidekiq を使用したい) ため、Redis データベースがあることを意味します。Redis データベースは、この種の情報を保存するのに最適な場所です。

したがって、Redis で結果の LIST を作成するだけです。あなたの計算を作成する 20 sidekiq ジョブのアプリケーションの起動中に起動します。計算を行うワーカーは、結果を Redis のリストにプッシュできます。

リクエストを処理するときは、リストから結果を取り出し、別の sidekiq ジョブをキューに入れるだけで、新しい計算を行うことができます。

于 2013-10-01T20:47:17.783 に答える