2006-10-27

PHP 計數器規零 問題解法方法

在學期間,幫實驗室寫了一個計數器,利用 file 當成存檔的媒介,但是常常一陣子會被重置,到最近在慢慢的看 php document 的時候,發現了問題了。

當兩個訪客同時間進入時,會產生數值歸零(雖然機會小,但對高流量網站很大機會發生)

 果然是這樣,歸零是很少發生。但是被規零還是很令人苦惱。解決方法如下:

 

      $fp = fopen("counter.dat", "w");
flock($fp, LOCK_EX); // do an exclusive lock
fwrite($fp, $counter);
flock($fp, LOCK_UN); // release the lock
fclose($fp);
 
在寫檔前後,先把檔案 lock 起來,就可以解同時寫入造成規零的問題了。 
Related Posts Plugin for WordPress, Blogger...

沒有留言 :

張貼留言

,,