10 分ごとにいくつかの XML フィードを解析し、render: file
メソッドを使用して Rails プロジェクトのすべてのページに含めるいくつかのパーシャルを作成する cron ジョブがあります。問題は、明らかに、サーバーが再起動するまで更新されないことです。
とにかく、レールに毎回このファイルを強制的に更新させるにはどうすればよいですか?
前もって感謝します。
10 分ごとにいくつかの XML フィードを解析し、render: file
メソッドを使用して Rails プロジェクトのすべてのページに含めるいくつかのパーシャルを作成する cron ジョブがあります。問題は、明らかに、サーバーが再起動するまで更新されないことです。
とにかく、レールに毎回このファイルを強制的に更新させるにはどうすればよいですか?
前もって感謝します。
代わりに使用してください:
render :inline => File.read(file_name), :layout => true
render(:file) を誤用していると思います。これは間違いなく、意図された使用方法ではありません。パーシャルのレンダリングは、データロード手法ではなく、複数の場所でモジュール化された erb (または使用するテンプレート lang) コードをレンダリングするために使用されることになっています。動的に変化するデータをロードするために使用しています(表示されます)。
あなたが実際にやろうとしているのはフラグメント キャッシングだと思いますが、それ以上のコンテキストがなければ、私は間違っている可能性があります。
フラグメント キャッシングの優れたチュートリアル: http://www.railsenvy.com/2007/3/20/ruby-on-rails-caching-tutorial-part-2
おそらく、cron ジョブは、キャッシュしようとしているフラグメントを作成するスクリプト/ランナー スクリプトを実行するでしょう。
私がここから離れている場合は、ロードしているファイルの種類と何を達成しようとしているのかを明確にしてください。
これは、本番モードではRailsがすべてのクラスとビュー/部分をキャッシュするために発生します。この問題を解決するには、フラグメントキャッシングブロック内にパーシャルをレンダリングし、ブロックコンテンツを更新するときにメソッドexpire_fragmentを使用します。他の方法として開発モードに切り替えることもできますが、アプリケーションの速度が低下します。