MySQL、オープンソース系、ウェブ系ネタ。commentsTweetflock()を使った強固な排他処理(ファイルロック)perlで排他処理(ファイルロック)を行う場合様々な方法があります。昔のレンタルサーバの場合はflock()が使えない環境などがあり、symlinkやmkdirを使った処理が多くありました。スピード・信頼性に優れていて、現代どこのサーバ(Unix系の)でも使えるであろうflockを使わない手はないと思います。symlink・遅い。・ロックしたままの状態(ロック用シンボリックリンク)が残る可能性がある。・サーバーによっては使えない場合がある。・ロックしたままの状態(ロック用ディレクトリ)が残る可能性がある。・処理全体をロックする場合に便利。・どの環境でも使用できる。・アンロックし忘れが無い。■サンプルソースflockは完了するまで永遠と処理を待ち続けるため10秒のアラーム処理を入れ10秒以内に完了しなければタイムアウトとしました。この処理は強力でまずファイルが壊れる事はありません。このファイルロックを使い、10万PV/日でも壊れませんでした。ロック処理の間に他のファイルを開く時にはファイルハンドル(サンプルでは”FILEHANDLE”)を変える必要があります。これを怠ると必ずファイルが壊れます。DBIx::Class(DBIC)でtimestamp的なカラムの自動更新Mojoliciousでactionの前後に実行される独自のHookを作る。