我有一個cron腳本,可以爲網站提供新內容,並將需要的條目保存到數據庫中。條目被md5哈希和驗證,以防止欺騙。但是我注意到,有時候有兩個事件同時運行,並且哈希方法在這個時候失敗了,因爲我在插入到DB中的每個pregmatches中有兩個。防止PHP腳本同時運行
有人可以推薦最好的方法來防止這種情況在將來發生。
我已經考慮通過檢查日誌文件來鎖定執行,但在這種情況下,如果中間存在錯誤,腳本可能會永久鎖定。
我正在研究設置$ _SESSION ['lock'],所以在這種情況下,如果它鎖定並中斷,會話將在某個時間點過期。
任何想法?
可能使用你有鎖定的想法,但包括LastActive時間戳?然後您的腳本可以檢查啓動時的最後活動時間戳,如果超過10分鐘左右,請解鎖並繼續。 –
一個基於Memcache的互斥體系。到期內置:) –
當你的腳本啓動時,你可以從'ps'查看是否有一個同名腳本已經在運行。如果是,請退出新實例。 – halfer