Rails を使用して、自動化されたハードウェア テストの結果を表示します。テストは主に TCL を介して実行されます。最近、基本的には log4J の翻訳版である「log4TCL」を実装しました。ログ ファイルには 40000 行を超える行があり、それぞれがログライン レコードとしてデータベースに書き込まれ、ビューの読み込み時間が長すぎて使用できないと見なされます。速度を上げるために ajax リクエストを使用しようとしましたが、最初のクエリ/ページの読み込みは、ページ全体の読み込みの約 75% を占めています。
私の解決策はページキャッシングです。各ログレポートは「log_viewer」の異なるインスタンスであるため、レールに含まれるページキャッシュを使用できません。レポートは、test_run_id パラメータを使用して生成されます。Rails に含まれるページ キャッシングは、「log_viewer.html」の 1 つのインスタンスのみをキャッシュします。必要なのは「log_viewer_#{test_run_id}.html」です。私はこれを行う方法を実装しました。レポートは 1 週間後に期限切れになり、ディスク容量を節約するために test_runs/log_viewer_cache ディレクトリから削除されます。古いレポートが必要な場合は、ページをロードすると、新しいエージアウト タイマーでレポートが再生成されます。
これが進むべき道だという結論に達しました。私の懸念は、このような他の実装をどこにも見つけていないことです。これにより、設計に固有の欠陥を見落としていると思われます。任意の入力をいただければ幸いです。
編集: 明確にするために、このレポートの「動的」コンテンツは、読み込みに時間がかかりすぎるものです。アクション/フラグメントのキャッシングが関係ない複数のインスタンスをキャッシュする必要があります。