2

コントローラーに、選択した日付範囲(開始日と終了日)に基づいてサイトの使用状況のレポートを生成するアクションがあります。開始日と終了日は現在の四半期内である必要があります。

background job各四半期の終わりにこのレポートを生成し、表示ページのリンクとしてダウンロードできるようにするを実装したいと思います。

各四半期は3か月なので、たとえば-March 31st 11:59 PMに、1月1日から3月31日までのサイト使用状況のレポートを生成し、表示ページでダウンロードできるようにします。

whenever gem一定の間隔でモデルのインデックスを再作成するためにすでに使用しているので、可能であれば使用することをお勧めします。考えられるすべての提案を歓迎します!!

これについてどうやって行くか私を助けてください!

4

2 に答える 2

2

バックグラウンドジョブを作成し、それらを複数のキューに配置し、後で処理するには、Gems DelayedJob(Rails 3.0以降では2.1)またはResqueをお勧めします。両方に適したRailscastがあります。

于 2011-12-16T09:24:44.543 に答える
1

クラスReportGeneratorを追加して、RailsRunnerで使用できます。このクラスは、日付範囲を計算し、レポートを生成し、アプリケーションの公開ディレクトリの下に保存します。パブリックディレクトリ内のすべてのファイルには誰でもアクセスできることに注意する必要があります。このファイルにアクセスするための認証が必要ない場合は、他のディレクトリに配置できます。たとえば、非公開にして、ApacheのX-Sendfile httpヘッダーを使用してアプリ経由で提供します(認証目的)。

ReportGenerator.new(:quater => 4).generate

あなたが持っているクォーターを認識するために:

quaters => {
  1 => "definition of 1st quater (date ranges)",
  2 => "definition of 2nd quater (date ranges)",
  3 => "definition of 3rd quater (date ranges)",
  4 => "definition of 4th quater (date ranges)".
}
quater = Date.today.month / 3
于 2011-12-16T08:53:53.730 に答える