が、いまいち分からなかったりします。やりたいことはApplicationController内に定義してある関数を呼び出す処理。BackgrounDRbの中で、expire_pageを呼び出したい時もあると思うので。キャッシュの生成処理をBackgrounDRb内でやらせるのは高速化につながるのではないかと思います。そうすると、キャッシュの生成にかかるコストをバッググラウンドでやらせつつ、表示が高速化できるようになります。

妥協的な方法は以下。

How to Execute a Rails Controller Action via. Cron [ Mr. Matt ]を参考にすると、以下のようになります。


class FunctionWorker < BackgrounDRb::Rails
 def do_work(args)
  : # 何かの処理
  app = ActionController::Integration::Session.new
  posts.each { |some|
   app.get "some_controller/some_method/#{some.id}"
  }
end

こうすると普通にコントローラーが利用できるようになります。やっていることはHTTPアクセスと変わらないので、どうしてもという時だけになるでしょうが。

Leave a Reply

MOONGIFTネットワーク。こちらもぜひご覧ください。
MOONGIFT
Open Service
Rails 2.0
Resident on Net
iPhone最適化
リーンソフトウェア
MarketPedia
Producing Web
Cool Coding