2013-05-02 115 views
-1

我一直在尋找(搜索谷歌)PHP腳本,它將檢查一個特定的PHP進程/函數是否正在運行,但無法找到一個在Windows非批處理腳本中運行的程序/函數。檢查Windows服務器中運行的PHP進程

我基本上需要確保一些進程的運行不會重疊,無論腳本是從網頁執行還是從Windows計劃執行。一些進程應該只發生一次。

我已經在這裏嘗試了幾乎所有的東西http://php.net/manual/en/function.getmypid.php但他們似乎沒有工作。

任何幫助表示讚賞。

+0

記錄其開始和結束,其他進程可以檢查它是否基於日誌運行 – 2013-05-02 00:49:11

+0

可能的重複http://stackoverflow.com/questions/1129439/how-to-find-out-a-specific-process- is-still-running-in-php和http://stackoverflow.com/questions/1656350/php-check-process-id – Grmn 2013-05-02 00:49:37

回答

2
  1. 在腳本啓動時創建一個「鎖定」文件。
  2. 腳本結束後將其刪除。
  3. 如果腳本找到鎖定文件,請不要啓動腳本。

如果您有多個不同的腳本,只需以不同的方式命名鎖定文件。

+0

謝謝。那麼像這樣的事情也會爲每個用戶單獨工作嗎?所以說一個用戶有10個瀏覽器窗口在同一頁面打開,我只想爲每個用戶運行一次腳本,例如獲取用戶消息。我只是根據用戶會話命名鎖文件(或類似的東西)。 – puks1978 2013-05-02 01:13:19

+0

當然,或者將它存儲在他們的會話中,因爲它爲您處理文件。 – 2013-05-02 01:18:35

+0

太好了。感謝並將實施這一點。 – puks1978 2013-05-02 01:20:25

相關問題