MovableType Background Rebuilder Plugin(2).

| コメント(3) | トラックバック(2)
最新版はこちらから。

何人かの方が試してくださったようで、正常に動いたとの報告をもらえた。
ただ、再構築の結果を一切フィードバックしないので「正常に動いてる...っぽい? らしい。」という反応がほとんど。

ということで、再構築結果のフィードバックを受け取るようにしてみた。

Bootstrap AppでMTのAPIを利用したCGIを別に作り(MT本体だと負荷がかかりそうなので本末転倒じゃないかと...)再構築結果画面が表示された段階でAjaxというか、JavaScriptでCGIに非同期アクセスを定期的に試み、実行ログができていたらそいつを返す、という感じで。

せっかくなので再構築にかかった時間も表示するようにしてみた。

実行結果の画面表示

※Firefox1.5、Safari 2.0で動作確認済み。
(IEで確認していないのが何ともですが、正常に動いたらどなたか教えてください...)
1/5追記:IE6/7で確認済み


『メイン・メニュー > プラグイン > Background Rebuilder > 設定を表示』で以下の設定が行えるようになっている。

  1. 再構築の実行結果を取得する
    このチェックを入れない場合、再構築の実行結果を表示しない。
  2. 実行結果の取得間隔(ミリ秒)
    再構築の実行結果を取得するプログラムを何ミリ秒単位で取得しにいくかを数字で設定する。
    デフォルト値は1000(1秒)。
    この場合、1秒おきに/plugins/BackgroundRebuild/BackgroundRebuild.cgiへアクセスし、実行結果の取得を試みる。
  3. 実行結果の取得回数
    再構築の実行結果を取得するプログラムの実行回数を指定する。
    デフォルト値は180回。
    この場合(実行結果の取得間隔が「1000」の場合)、1秒おきにMax3分まで再構築実行結果の取得を試みることになる。
  4. すべてを再構築時の実行待ち秒
    「すべてのブログを再構築」ボタンをクリックした時、プログラムはブログ単位で順番に再構築プロセスを走らせるようになっているが、次のブログの再構築プロセスを走らせる前に待ち時間(秒)を設けることをできるようにした。デフォルト値は0秒。

設定値については、かなりサーバー環境によって変える必要があるのではないかと思う。前のエントリにも書いたが、

  • 1GBのメモリを積んだMacBookにMAMPのApache+SQLite+MT3.3-jaの組み合わせ。
  • Blogを5つ、各Blogのテンプレートはデフォルト状態。
  • 以下のようなスクリプトで各ブログに300のエントリを作成してテストを実施。
my $mt = MT->new(Config => 'mt-config.cgi');
use MT::Entry;
for (1..300) {
	my $entry = MT::Entry->new;
	$entry->blog_id($blog_id);
	$entry->author_id(1);
	$entry->status(2);
	$entry->title('TestWeblog_entry_'.$_);
	$entry->basename($_);
	$entry->save or die $entry->errstr;
}

この時、デフォルトの状態で「すべてのブログを再構築する」をクリックして再構築した場合、各ブログの再構築時間は14〜15秒。

『すべてを再構築時の実行待ち秒』を5秒程度に設定した場合、各ブログの再構築時間は4秒前後という結果に。

但し、『すべてを再構築時の実行待ち秒』を設定した場合、CGIの方でその時間待たされるし、デフォルト設定の場合は各ブログの再構築が並行して行われることになるので体感速度的にはデフォルト設定の方が早い。
それでもこの設定項目を設けたのは、『各ブログの再構築を並行して行う』っていうのが、やはり負荷的にどうかということが気になったから。

このあたりはやはりデータを集めないと最適な値は決められないような気もするので、もし導入された方いらっしゃいましたらフィードバックいただけると幸いです。

最新版はこちらから。


尚、本バージョンからライセンスを『クリエイティブ・コモンズ・ライセンス(表示-非営利-継承 2.5)』としました。

Creative Commons License

トラックバック(2)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/434

MovableType Background Rebuilder Plugin. 続きを読む

エントリーの保存時にトラックバックを送信できるようになったので一応すべてのタスク... 続きを読む

コメント(3)

はじめまして、そして明けましておめでとうございます。
私のブログの文字コードはEUC-JPなのですが、ドキュメントにあるような「L10N/ja.pm」の文字コード変換を行うと、逆に文字化け状態になります。
自動で文字コードの変換を行っているため、書き換えの必要がないんじゃないでしょうか。

> 私のブログの文字コードはEUC-JPなのですが、ドキュメントにあるような「L10N/ja.pm」の文字コード変換を行うと、逆に文字化け状態になります。

そうですか。MTが内部でちゃんとやってるわけですね。
MT3.3、BlogはEUC-JPということで宜しいでしょうか。ドキュメントは修正しておきます。

メモ:
何と言うか、やっぱりちょっとフィードバックを取りに行く?負荷が気になるので、フィードバックのためにAjaxで結果取得に行く初動のタイミングを送らせるように修正したい。
各エントリの保存時の処理もバックグラウンド化すれば体感速度がさらに上がる気がする。

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2007年1月 3日 16:47に書いたブログ記事です。

ひとつ前のブログ記事は「MovableType Background Rebuilder Plugin.」です。

次のブログ記事は「MTのプラグインを書く10の理由。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6