2005-08-02 [長年日記]
_ 今日のスポクラ (11:17)
土日月と3日空けると、かなりブランクが体に来るな。なんか何をやるのも体が重い。でもまあ基本ペースは火水木金とやって、土日月と休むパターンになるはずだから、これで体を慣らさないと。ひとまず月曜日はいつもよりもさらに軽めくらいの気持ちでやろう。
_ やり直し (13:01)
やっぱりシステム時間が腐った状態で続けるのが気持ち悪いんで、6時間くらいプレイしたデータを消して、最初からやり直し。でも平日は1日30分くらいずつしかできない予感。で、来週は夏休みだしなー。休み中は車に積んで車の中でもやったるか。でもあの読みにくいフォントは、車のテレビじゃほとんど読めねーだろうなー。
_ 高負荷中です (13:09)
なんか先月末から急激に1470.netへのアクセス数が増え始めており(昨日は先月平均の倍くらいあった)、ときどき高負荷で調子が悪くなっているときがあるようです。DB周りとかはそれなりに大丈夫にしておいたのに、なぜかhttpdが応答しなくなる(プロセスがリミットになったとかじゃないのに)ことがある模様(多分今日昼の12時あたりにそうなっていたっぽい)。いまいち理由が分かっていないのですが、ひとまずApacheのパラメータをいじってみてます。MySQLに振っていたメモリを削って、Apacheのプロセス数をめいっぱいあげておくか。
_ set_error_handlerと@エラー抑止との関係 (22:01)
マニュアルを良く読めば書いてあったのだけど、気づかずしばらくはまっていたので、覚え書き。
set_error_handlerを使って独自のエラーハンドリングをする場合、@でエラー抑止している部分からも指定したエラーハンドラが呼ばれる。その場合、errer_reporting()でカレントのエラーレベルを取得し、それが0だった場合は、@でエラー抑止している部分からの呼び出しだということで、returnしてしまえばいい。
error_reporting(E_ALL);
set_error_handler('myhandler');
echo @$undefined; // このエラーは無視して欲しい
echo $undefined;
function myhandler($errno, $errstr, $errfile, $errline)
{
if (error_reporting() == 0) {return;} // ←ここがポイント
echo "$errno, $errstr, $errfile, $errline\n";
die;
}
なんて感じ。

