再び Movable Type BackgroundRebuilder プラグイン。
公開日 : 2008-03-28 00:00:31
また作ってしまった...
えーっと、3月も末でかなり忙しいのでドキュメントとか開発の続きはまたいずれ。 簡単に何が出来て、どうしたいかを書く。
- run-periodic-tasks 実行で全てのブログを再構築します。
- 管理画面から「ツール」→「バックグラウンド再構築」でバックグラウンドプロセスによって再構築を行います。
- システムメニューから実行すると全てのブログを再構築します。
- 実行結果はログに保存されます。
パブリックドメイン。ご利用も改造もご自由に行って構いません。
何で書いたか? ってのはつまり欲しいという人がいたからなんですが、個人的にもいくつか思うところがあって。
やっていることはつまり「全再構築」なので、負荷分散とか負荷軽減ではありません。実行すればそれなりに負荷がかかる。
負荷を分散したいのなら素直に「バックグラウンドのキューを使って再構築を行う」運用にするか、ダイナミックパブリッシング化、あるいはGreg Packer's Publishing等を検討するのが良いかと思う。
今回は単にコマンドラインやスケジュールタスクで再構築かけたかったってのと、CGIのタイムアウト制限があってタスク実行に制限のないサーバーの場合(あるのか?)とか、あるいは今携帯向け管理画面ってのを作っていて、携帯じゃさすがにリダイレクト繰り返しながら再構築ってわけにもいかんだろうというあたりの理由で書いたわけです。
ちょっと考えたこととして、最近はFastCGIで動かすことが多くなっていて(MacBookローカル環境もFastCGI化できたよ!)、mt-dispatchで動いていない場合はバックグラウンドタスク実行できないので、今回再構築タスクは別CGIを叩くようにしています。これでmod_fastcgi環境でも使える。
MT3向けに以前に書いたものでは、かなり細かく再構築対象範囲を選択できるようにしていたけど、今回はそこまで手が回っていない。
最終的には。
- アーカイブ毎に再構築のタイミングを細かく制御できるようにする
- バックグラウンドタスクでDBの更新だけを行い、再構築は負荷分散しながらゆっくりと
てなことを考えている。
車輪の再発明なのかもしれんけど、仕事でやってると本当にいろんな環境に遭遇するし、選択肢は多い方がいいし。
しかしまぁ、どんだけ「再構築」好きですか、おいら。