2003年11月26日

rebuild 支援ツール

[カテゴリ: MovableType関連 ]

特定のカテゴリのアーカイブのみをリビルドする方法」 や 「特定の月のアーカイブのみをリビルドする方法」 で用意した CGI は、目的のアーカイブをrebuildするには、目的のアーカイブに含まれる(ことになる)任意のエントリのエントリIDを知る必要がありました。

このままでは使い勝手が悪いのと、アーカイブ以外の rebuild も何とかしたいとの思いから、「rebuild支援ツール」なるものを作ってみました。

Internal Server Error で悩まされている方、rebuild の負荷が重くて困っている方は、よろしければ、試しに使ってみてください。

Movable Type を非力なサーバ、もしくは各種制限 (実行時間制限、メモリ使用量制限、など) のあるサーバ上で動かすと、 rebuild 実行時に Internal Server Error が頻発します。それ以外のサーバでもエントリの数が増えてくると、次第に rebuild 実行時に Internal Server Error が起きやすくなってきます。
そこで、 rebuild の負荷を少しでも減らして Internal Server Error を回避するため、一気に全部 rebuild するのではなく、アーカイブファイル1つづつ、エントリ数個づつ、何回かに分けて rebuild すると効果があるのではないか、と考えました。
この「rebuild支援ツール」は、 分割rebuild をサポートするためのものです。
投稿者: tsupo 投稿時刻: 2003年11月26日 23:47
コメント

モダシンのnagasawaです。
記事書きました。
http://www.aivy.co.jp/BLOG_TEST/nagasawa/archives/000400.html

トラックバックできないのって不自由ですね。がんばってください。

って、Internal Server Errorでまくりでこのコメントをアップできません(涙

作った理由が分かったような気がします。

投稿者: nagasawa 投稿時刻: 2003年11月27日 00:16

どうも、お手数をおかけしてすいません。
コメントの方は Internal Server Error が出ても、たいてい投稿は成功しています。(たまに失敗することはあるのですが)。
コメント投稿時の自動rebuild は Main Index Template を多少軽くしたこともあって、以前よりは軽くなっていると思います。でも、いまだに Internal Server Error が出るのは防げていません(涙)

コメントのtemplateをいじって、「Internal Server Error」が出ても気にしないでください」という意味のことを追記しておきます。

投稿者: tsupo 投稿時刻: 2003年11月27日 01:23

はじめまして。
早速使わせていただきました。
テンプレートが増えてきたのでちょっと困っていたところでした。
すごくありがとうございます!

投稿者: NOEL-KIT 投稿時刻: 2003年11月27日 09:35

「rebuild支援ツール」を使わせて頂きました。カテゴリの再構築でほぼ100%エラーになっていたので助かります。ところで、blog_idが1固定のようなのですが、これを可変にできるようにはならないでしょうか。今は両cgiを修正して使用していますが、cgiのパラメータでblog_idを渡せるようになると便利かなと思うのですが。ご検討頂けると幸いです。どうぞ宜しくお願い致します。

# モダシンで紹介されているのに全く気が付いていませんでした。どうして見落としていたんだろう……。

投稿者: 椎名まお 投稿時刻: 2004年03月16日 14:32

実は、entry_id さえ正しければ、blog_id の値は違っていても動いてしまいます。
そうはいっても、blog_id を使い分けることができた方がいいのは確かですので、次回改版時(時期は未定です)には対応したいと思います。

投稿者: tsupo 投稿時刻: 2004年03月18日 20:04

こんにちわ。
rebuild支援ツールを使わせてもらおうと思っています。

plugin(CatEntries2.8.plというカテゴリ表示をページ分割するもの)を使っているのですが、これで分割される状態になっているカテゴリーだけどうやら再構築ができていない様なのです。
rebuildの時の表示は正常に見えるのですが。

(しかし、Monthlyの方はこれを使っていないのでちゃんと更新できています)

Movabletypeのバージョンは2.661ですので、動かないよと言われればそれまでなのですが、今後なにかの対応時にご検討いただければ。

投稿者: Yacchan 投稿時刻: 2004年04月01日 12:13

すいません。
どうやら、うまくいきました。
(うーん、なぜウマクゆくようになったかh不明)
お騒がせして申し訳ない。

投稿者: Yacchan 投稿時刻: 2004年04月18日 00:43

自己レスです。
どうやら、うまくゆきました。
おさわがせして申し訳ない(ぺこ)

投稿者: Yacchan 投稿時刻: 2004年04月19日 02:41

よくわかりませんが、うまくいってよかったですね。

plugin関係は、rebuildツール側で、特に明示的に対応している訳ではありませんが、MovableTypeの機能をほとんど直に呼び出しているので、MovableTypeの機能を根本的に変えてしまうpluginでない限りは対応できてしまうのかもしれません。

投稿者: tsupo 投稿時刻: 2004年04月20日 09:50

rebuild支援ツールを使わせてもらっています。
キチンとインストールしていると思うのですが、うまく動きません。
「全部rebuild」から「ログの削除」までとIndividual Archives:はうまく動くのですが、中の「Monthly Archives」と「Category Archives」を実行すると、
failed to load blog 1
というエラーが出てしまいます。何か設定が間違っているのでしょうか。よろしければお教え願いたいのです。
 当方の環境はサーバーがinfoseek,Movabletypeのバージョンは2.661です。

投稿者: ikechi 投稿時刻: 2004年04月24日 08:25

blog ID の問題かもしれませんね。

そちらの blog_id の設定はどうなってますか?
もし、blog_id の値が1以外でしたら、cgi の方もその値に合わせて書換えてみてください。

現状のrebuild支援ツール、blog_id が 1 の blog が存在しないと、うまくいかないのかもしれません。

投稿者: tsupo 投稿時刻: 2004年04月29日 00:32

先日はお騒がせしましたです。

IndividualとDailyもMonthlyなCGIを100%コピーして、ちょろりと修正して動きましたです(ぺこ)
公開は・・さすがに(^^lなのでしてませんが
ありがとうございます。
リビルトページはDailyとIndividual別に作って、MTPaginateでページ分割するよーにしてみました。
(Individualまとめてポンは元からあるRebuildを使用して、1こだけ再構築したいとき用)

投稿者: Yacchan 投稿時刻: 2004年05月10日 03:49

MT3.0になってからIndividual Entry Archiveのみの
リビルドが出来なくなってしまったので
困ってましたがrebuild支援ツールを思い出し
今回導入させていただきました。
これを使えば万事OKです♪

投稿者: こだるま 投稿時刻: 2004年07月24日 12:49

導入できた・・・・と思ってたのですが、ikechiさんと同じく
カテゴリ別と 月別が エラーになってだめみたいです。
BlogIDは 2なので、cgiのblog_idのところを 2にしてみたのですが
やっぱりエラーになります。blog_idが1のブログもちゃんと存在しますが
こちらで試してもダメみたいです。MTのヴァージョンは3.121です。

投稿者: さえら 投稿時刻: 2005年01月30日 11:47

すみません、どこをどう直したらできるようになったのかわからないのですが、
リビルド画面が出るようになりました。最後に done と出るので
再構築できてるようなのですが、少し不安が・・・・・
たとえば、ひとつのカテゴリの再構築にかかる時間が 1秒とか2秒、
エントリの一番多いカテゴリでも8秒しかかかりません。
月別アーカイブでは 月に150以上のエントリがあった月でも たった1秒で再構築が終わってしまいます。
これで・・・OKなのでしょうか?
今まであまりにも時間がかかっていたので、ホントにこれでできてるのか、心配になってしまうんです。
月別アーカイブでも カテゴリ別アーカイブでも そのアーカイブの最後のエントリ名が出てますけど
この 最後の1エントリだけを 再構築してるのではないですよね?
そのエントリを含む アーカイブ、ってことなんですよね?

投稿者: さえら 投稿時刻: 2005年01月30日 13:29

すでに、別の経路でさえらさんには返答済みですが、ここにもコメントを書いておきます。

リビルド支援ツールはリビルドする必要のある最低限のファイルだけをリビルドするようにしようとしていますので、通常のリビルドより早く終わります。全部の記事を真っ正直にチェックすると、それだけで時間がかかってしまい、サーバによっては 500 Internal Server Error になってしまいます。それで、最低限のファイルをチェック、リビルドすることで、Internal Server Error の呪縛から逃れようとするのが、このリビルド支援ツールの思想です。

カテゴリ別アーカイブは、そのカテゴリに含まれる記事最低1個だけチェックすれば、リビルド可能なのです。この辺は、MovableTypeのソースを読んでわかったことなんですけどね。

月別アーカイブも同様に、その月の記事、最低1個だけチェックすれば、その月をまるごとリビルドできます。

なので、すぐにリビルドが終わります。

投稿者: tsupo 投稿時刻: 2005年02月13日 19:45
コメントを投稿する
コメント投稿時に Internal Server Error と表示されることがありますが、ほとんどの場合、コメントの投稿はうまくいっています。このエラーが出たときは無視してください。









名前、アドレスを登録しますか?








Access Count:
Last Modified: Friday, 18-Apr-2008 05:27:50 JST

Google