もちろん、実際にはアプリケーションとシステムに依存しますが、私は通常、定期的にレポートを生成するPHPスクリプトを実行するcronジョブを持っています。出力はファイルシステムまたはデータベースに保存できます。このようにして、私のレポートは(ユーザーがダウンロードしようとするたびに)一度だけ生成され、必要なときに生成されます(スクリプトは、変更基準に基づいてレポートを生成する必要があるかどうかを確認できます。定期的に新しいレポートを生成するように設定してください)。本当にシンプルに保つには、現在のWebページをwgetまたはcurlで呼び出し、Webサーバー上に保存したレポートをダウンロードするための新しいページを作成します。
この方法の唯一の問題は、ユーザーが「古い」レポートをダウンロードする可能性があることです(データは変更されましたが、レポートは更新されていません)。これが本当に問題であれば、変更されたデータをチェックし、必要に応じてレポートを生成するバックグラウンドでPHPスクリプトを実行し続ける別の方法があります。
もう1つの方法は、ユーザーがレポートをダウンロードしようとしたときにレポートを生成し続けるだけで、結果をキャッシュすることです。独自のアプリケーション固有の基準を使用して、キャッシュされたレポートがすぐにダウンロードできるかどうかをチェックしたり、新しいレポートを生成してキャッシュしたりするかどうかを確認します。新しいレポートを定期的に生成することで、これを最初のアプローチと組み合わせることもできますが、ユーザーが古いレポートをダウンロードしようとすると、すぐに新しいレポートが生成されます(ユーザーは3-10秒待機します)。
最終的には、システムとアプリケーションによって異なります。
これらのレポートを今作成するために使用しているのは何ですか。それは時間がかかりすぎて、それをスピードアップする方法を特定するために、あなたが使用しているツール/ライブラリを知る必要があります –
@マーク・ベイカー:私はxlsファイルを生成するためにPHPExcelを使用しています。私はちょうどcvsファイルを生成するのがどれくらい簡単かを見てきましたが、私はより安価なアプローチを採用しようと考えています。 –
@Nicolas:私の質問を編集するための質問:) –