2006-02-04
@ エラーメッセージの一元管理
ファイルにエラーメッセージの一覧を書き出しておいて、プログラムからはメッセージのIDをキーにエラーメッセージ取得、みたいなことは良くやるわけですが、エラーメッセージを取得する際に毎度毎度ファイルにアクセスしてメッセージ取得、なんてことやってるとシャレにならないぐらい遅いので、アプリケーションサーバ起動時にファイルの中身をメモリにロード、ってなことをよくやります。しかしこれだとちょっとメッセージ直しただけでもアプリケーションサーバの再起動が必要になってしまい、いわゆる「止められないシステム」では役に立ちません。(開発時でもいちいち再起動するのは面倒ですし)
つーわけで、メッセージファイルの最終更新日時とファイルをロードした日時を比較して、ファイルの最終更新日時が新しかったらリロード、みたいな仕組みを入れてみました。
ちなみに、メッセージを管理するクラスはSingletonなので、リロードしている間に他のプロセスからメッセージのアクセスがあったらどうなるんだろう、とか考えてしまったんですが、こういうのってちゃんとロックした方がいいのかなぁ*1。ローカル変数のハッシュのリファレンスを取ってインスタンス変数に(ポインタとして)入れてるだけなんで、一瞬で終わるだろ、っつーことでお茶を濁しているわけですが。。。
*1 いやもちろんロックした方がいいに決まってますが面倒くさ...
@ [perl] 68user's page/排他処理
symlinkでの排他制御について詳しいのでメモ。
# まこと [うおー、もうblessしてるんですか? 早杉。Perlを256倍使うための本は面白かったですよ。DBI/DBDの話だ..]
# たけぞう [Rubyやっててもそうなんですけど、スクリプト言語でオブジェクト指向ってなんか不安になりますよね。大人数でやると愉快..]
# おいぬめ [blessしているというよりかは、フレームワークとして存在しているオブジェクトを利用している感じですかね。一応Per..]
# おいぬめ [きっとたけぞうさんの日記の愚痴がひどくなるでしょう(w < スクリプト言語でオブジェクト指向]
# まこと [私はKawa(JavaによるScheme実装)をつつくことに決め。]