如果我通過file_put_contents
數據寫入文件與FILE_APPEND
標誌設置和兩個用戶在同一時間提交數據,這將追加不管,還是有機會的一個條目將被覆蓋?兩個用戶同時寫入一個文件? (PHP/file_put_contents)
如果我設置了LOCK_EX
標誌,第二次提交是等待第一次提交完成,還是數據在無法獲得排它鎖時丟失?
怎樣PHP通常處理這個問題?我正在運行5.2.9版本。如果那很重要。
感謝, 瑞安
如果我通過file_put_contents
數據寫入文件與FILE_APPEND
標誌設置和兩個用戶在同一時間提交數據,這將追加不管,還是有機會的一個條目將被覆蓋?兩個用戶同時寫入一個文件? (PHP/file_put_contents)
如果我設置了LOCK_EX
標誌,第二次提交是等待第一次提交完成,還是數據在無法獲得排它鎖時丟失?
怎樣PHP通常處理這個問題?我正在運行5.2.9版本。如果那很重要。
感謝, 瑞安
你也可以檢查flock函數來實現適當的鎖定(不是基於時/睡眠訣竅)
如果通過LOCK_EX
設置獨佔文件鎖定,嘗試寫入第二個腳本(時間方面)將簡單地返回從file_put_contents假的。
即:它不會坐着等待文件寫入變爲可用。
因此,如果需要的話,你需要在這個行爲自己編程,也許嘗試使用file_put_contents一個有限次數(例如:3)的sleep每次嘗試之間的合適尺寸的使用。
您將需要運行`while`和`sleep`後`file_exists`檢查,以能夠等待解鎖 – RobertPitt 2011-01-13 16:41:59
什麼問題#1 ...如果我不使用鎖定,會發生什麼? – NightHawk 2011-01-13 16:42:48