我有問題。我有一個由GET觸發器觸發的腳本。我正在嘗試使用fwrite和append來記錄腳本的執行情況,但是我發生的情況是,如果在另一個實例仍在寫入文件時調用某個實例,它將中斷fwrite並插入它自己的數據。如果文件正在寫入,有什麼辦法可以讓腳本排隊等待?但我不想丟失任何日誌數據。在php中同時登錄
在此先感謝!
我有問題。我有一個由GET觸發器觸發的腳本。我正在嘗試使用fwrite和append來記錄腳本的執行情況,但是我發生的情況是,如果在另一個實例仍在寫入文件時調用某個實例,它將中斷fwrite並插入它自己的數據。如果文件正在寫入,有什麼辦法可以讓腳本排隊等待?但我不想丟失任何日誌數據。在php中同時登錄
在此先感謝!
使用flock是一個非常糟糕的主意 - 然後進入計算文件應該鎖定多長時間的領域,明確掛起腳本的執行 - 各種各樣的尷尬。 PHP沒有併發文件訪問所需的那種文件鎖定語義。
更好的解決方案是:
你應該看看flock()
大概。爲每個執行創建一個單獨的文件,然後通過鎖定較大的日誌文件來合併它們也可能是一個好主意,或者如果可行的話,您甚至可以考慮將所有內容發送到數據庫。