0

Rails ページが読み込まれるときに、ページ メトリックを格納する適切な場所を見つける必要があります。これには、最初に特定の遅いメソッドが使用された回数の統計が含まれます。現時点では、ApplicationController でクラス変数を使用していますが、コードの匂いがするようです。これを行うより良い方法はありますか?

class ApplicationController < ActionController::Base
  cattr_accessor :page_stats

  def increment_slow_stuff()
    @@page_stats ||= {}
    @@page_stats[:slow_stuff] ||= 0
    @@page_stats[:slow_stuff]  += 1
  end

  def slow_method()
    increment_slow_stuff()
    ...
  end
end
4

2 に答える 2

1

この方法の問題は、クラスが存在する限り、統計が存在することです。データベースまたは Redis に書き込むことをお勧めします。

この Railscastに示されている手法を使用して、コードがコントローラー内にないように、これらのイベントをサブスクライブすることもできます。

于 2013-02-02T03:09:44.277 に答える
1

インスタンス変数を使用しないのはなぜですか? 後で長期間保存する必要がある場合は、ページビューの最後にいつでもレコードを保存できます。さらに、PageStats モデルを使用すると、メトリックのより高度な分析を行うことができます.

于 2013-02-02T03:11:25.323 に答える