最新ログ取得について

最新ログ取得&更新の処理が意外と面倒。必要な処理のステップを記述してみます。こういう場合、フローチャートやシーケンス図も便利ですが、とりあえず日本語で記述してみるのが一番良い気がします。

  1. 前回のログ取得時間をチェック。前回のログ取得時間から一定時間経過していなければ、更新しない(ここでおわる)
  2. 各板のサイトにあるログ一覧ページを取得し、タイムスタンプをチェック
  3. 更新されていれば、ログを一時ディレクトリにダウンロード
  4. getlog用キャッシュ(dat、output、treeの3種類)に今回の差分を追加
  5. ダウンロード用HTMLに今回の差分を追加(gzipアーカイブには差分を追加しない。gzip解凍と再圧縮のコストがかかるため)
  6. 一時ディレクトリのログを削除
  7. 過去ログ一覧表示用の件数情報を更新(MySQL

都合7種類くらいの処理が必要になりますね。