我正在使用一個異步的web服務,它發回給我一個作業ID。完整的響應然後通過web服務作爲XML文件(jobId.xml)使用PUT請求發送到我的服務器。如何等待文件與php共存?
發出請求的web服務和獲取作業ID後,我 想知道什麼是最好的(最有效)的方式來等待 ,直到該文件被創建到的PUT目錄我的服務器?
我想每次執行之間有超時usleep()函式()file_exist的循環。
但我相信有更好的辦法。 就像聽衆...
該文件可能需要不到一秒鐘,超過1分鐘才能到達。
謝謝!
我正在使用一個異步的web服務,它發回給我一個作業ID。完整的響應然後通過web服務作爲XML文件(jobId.xml)使用PUT請求發送到我的服務器。如何等待文件與php共存?
發出請求的web服務和獲取作業ID後,我 想知道什麼是最好的(最有效)的方式來等待 ,直到該文件被創建到的PUT目錄我的服務器?
我想每次執行之間有超時usleep()函式()file_exist的循環。
但我相信有更好的辦法。 就像聽衆...
該文件可能需要不到一秒鐘,超過1分鐘才能到達。
謝謝!
您可以使用inotify
來監視某個目錄中的文件創建。
或者,您可以修改您的PUT處理程序來通知您的腳本。例如,您可以創建一個命名管道,從中讀取(阻塞),並修改PUT處理程序對管一寫吧寫文件
,如果你需要的PHP我不明白過程保持活躍(不返回和死亡)或不。如果不是,請考慮使用incrontab。
它就像一個cronjob,但不是在預先配置的時間上運行,而是根據文件更改運行。你可以配置它來偵聽一個目錄,當一個文件在文件系統上完成創建時,incronjob會激發你想要的程序。
這是一個unix/linux操作系統的解決方案。你沒有提到你的操作系統。
linux-only我想,它是否使用inotify – arnaud576875
它在CentOS上 – benjisail
是的我需要在這種情況下進程保持活動狀態。但我不知道incrontab,它可能對其他應用程序有用! – benjisail
哪一個最有效?我將不得不廣泛使用它。 – benjisail
我認爲兩者同樣有效;該腳本將等待,並將在創建文件時被喚醒 – arnaud576875