[mayaa-user:772] キャッシュが無いときだけオートビルドを実施する方法について

山岸夢人 [E-MAIL ADDRESS DELETED]
2009年 4月 7日 (火) 12:23:01 JST


山岸と申します。

はじめまして。
ご質問させていただきます。

AutoBuild機能・テンプレートファイルのキャッシュ機能のカスタマイズにより、「アプリケーションの起動時に、キャッシュファイル(シリアライズファイル)が存在しない場合のみ、オートビルドを実行する。」ということは可能かどうか、ご教授願えますでしょうか?

<背景>
次のことを実現する方法を探しております。

・パフォーマンス要求とメモリの節約を両立したいので、
 テンプレートファイルのキャッシュ(Serialize)機能とsurviveLimit設定機能は利用したい。
・運用中のアプリケーションの起動時に、「毎回は」オートビルドを実行したくない。
 (可能ならデプロイ前にプリビルドしたい。)
・アプリケーションの起動中は、オートビルドを行いたくない。

現在は、ServiceProviderのengine設定にて
 autoBuild="true"
  autoBuild.repeate="false"
  surviveLimit="1"
  pageSerialize="true"

とすることで、ほぼ実施したいことは実現できるのですが、アプリケーションの再起動の際に毎回テンプレートのビルドが実行されてしまいます。なお、この処理を低いプライオリティのスレッドで実行することで、他への影響をおさえるようにご考慮なされている点は承知いたしておりますが、運用プロセスにアプリケーションの再起動が組み込まれており、そのたびにオートビルドを実施するのは避けたいと考えております。

現在考えている代替方法:
以下の手順を考えておりますが、あまりスマートではありませんので、もし良い方法がございましたら、お知恵を拝借できればと思います。

1)一度上記の設定でアプリケーションを起動(キャッシュファイルを生成のため)
2)アプリを停止。
3)META-INFのServiceProviderのengine設定を
 autoBuild="false"
と変更し、WEB-INF/.mayaaSpecCacheに生成されたキャッシュファイルを含めて
デプロイ用のWebappアーカイブを作成


仮に、現在のバージョンでは今回の設定を行えない場合、Mayaaのマイグレーションによりこの機能を追加することが容易かどうかのご判断をお聞かせ願えませんでしょうか。

よろしくお願いします。
===========
株式会社豆蔵 山岸夢人


mayaa-user メーリングリストの案内