2004年05月30日
MovableTypeで再構築にコケる
旧サイトから過去ログをインポートした。
ログの形式をMT用に書き換えて、一気にインポート・・・と思ったが途中でタイムアウトになるのか、100件ほどで止まってしまう。仕方がないので適当に分割して何とか読み込ませた。保持データ量が増えれば増えるほど負担が大きくなるらしく、最後は10件単位で読み込ませる羽目に。
そんなこんなでちゃっちゃと読み込ませて、いざ再構築・・・でサーバーエラー。
こりゃ処理が時間かかりすぎてのタイムアウトだな。
小手先のテクニックでPHPだのIncludeだのテンプレートを読み込ませたりして、Indexと個別は普通に通るようになった。まあ、このあたりは標準設定でも1回の処理数が少ないから何とかなるのだろう。
ただ、どうしても月別とカテゴリ別が構築できない。
mt.cfgのEntriesPerRebuild値をデフォルトの40から変更すると、個別リビルドの1リクエスト当たりの処理数が変更できるようなので試しに半分の20に変更。個別がやたら画面遷移を増やしただけで何にもならない。
これじゃどうしようもないと思ったが、Monthlyでの処理数が400から200に変わっていた。ということは、20*10という計算式がどこかにあるはず。
調べた
あった
lib/MT/App/CMS.pm で%Limit_Multipliersという配列に格納されていた。Individualだと1倍、Monthlyだと10倍だ。
Monthlyを2倍に変更しておく。
おお。通った。
で、残すはカテゴリアーカイブだが同じくCMS.pmのstart_rebuild_pagesという関数を見るとカテゴリの場合に分割して処理することが考慮されていないように見える。
ん。あきらめろって事か。
っていうか、1カテゴリに500個近いエントリがある段階で無茶だしなあ。
カテゴリテンプレートを簡素にしたらどうにかなるかなあ。