2009-11-02 147 views
0

在Windows服務器上,我們有偶爾運行,使用「任務計劃」來控制它的任務。 (最好不要直接運行它,因爲它可能需要作爲特定用戶運行,並且「計劃任務」配置具有所有適當的密碼)。啓動計劃的任務從腳本

我們想通過PHP腳本來控制這一點,讓遊客到一個網站可以請求任務運行。 PHP可以觸發計劃任務嗎?包括髮出錯誤或在任務已經運行時不採取任何行動。

注:的lockfiles等可能不是一個有用的解決方案,因爲該任務可能會失敗/崩潰完成

回答

0

之前,如果你有PHP環境的控制,那麼你可以直接在PHP中使用shell_exec執行外部應用程序,附加參數。此外,您可以在相關任務中使用互斥鎖等檢查來防止多次執行。

+0

(一),這如何讓運行爲不同的用戶名,使用其他用戶的Windows配置 (B)請問這是怎麼檢查任務是否已在運行?當然 – OJW 2009-11-02 14:41:49

2

一個簡單的方法:讓你的任務運行所有的時間,但什麼都不做,直到它找到一些特定的文件,然後刪除它,做它的工作(然後回去等)。

你PHP(或其他)腳本只需要創建一個文件...

+0

的',而(真)'循環應該在那裏有一個睡眠聲明的地方,因此該文件的下一次檢查之前等待。 – 2009-11-02 14:45:54

+0

很好的答案,但如果任務崩潰,那麼它需要重新啓動它。 這回來到:如何將它重新啓動它的東西知道任務是否正在運行? – OJW 2009-11-02 14:47:07