2006-02-04 [長年日記]
@ エラーメッセージの一元管理
ファイルにエラーメッセージの一覧を書き出しておいて、プログラムからはメッセージのIDをキーにエラーメッセージ取得、みたいなことは良くやるわけですが、エラーメッセージを取得する際に毎度毎度ファイルにアクセスしてメッセージ取得、なんてことやってるとシャレにならないぐらい遅いので、アプリケーションサーバ起動時にファイルの中身をメモリにロード、ってなことをよくやります。しかしこれだとちょっとメッセージ直しただけでもアプリケーションサーバの再起動が必要になってしまい、いわゆる「止められないシステム」では役に立ちません。(開発時でもいちいち再起動するのは面倒ですし)
つーわけで、メッセージファイルの最終更新日時とファイルをロードした日時を比較して、ファイルの最終更新日時が新しかったらリロード、みたいな仕組みを入れてみました。
ちなみに、メッセージを管理するクラスはSingletonなので、リロードしている間に他のプロセスからメッセージのアクセスがあったらどうなるんだろう、とか考えてしまったんですが、こういうのってちゃんとロックした方がいいのかなぁ*1。ローカル変数のハッシュのリファレンスを取ってインスタンス変数に(ポインタとして)入れてるだけなんで、一瞬で終わるだろ、っつーことでお茶を濁しているわけですが。。。
*1 いやもちろんロックした方がいいに決まってますが面倒くさ...
@ [perl] 68user's page/排他処理
symlinkでの排他制御について詳しいのでメモ。
2006-02-08 [長年日記]
@ [work] 仕事は非ルーチンワークから片付けよう
確かに業務終了時間(というか終電間際)になると、非ルーチンワークをやっている余裕なんてなくなるので、であれば最初にやってしまえ、ってことですかね。というわけで実践中なのですが、やらなきゃいけないルーチンワークにかけられる時間も減っていい感じにプレッシャーがかかるので、ダラダラ仕事しないようになっている気がします。
2006-02-15 [長年日記]
@ [perl] Practical mod_perl
随所で紹介されてますが、オンラインで読めます。いつか絶対読んでやろうと思っているのですが、なかなか時間取れないのでとりあえずメモだけ。