2013-08-18 129 views
1

有沒有一種方法可以使php在沒有cron的情況下永遠工作。 我想要的是幾個小時後通過運行mysql查詢來卸載用戶,謝謝如何讓php在沒有cron的情況下永遠工作?

+0

cron工作有什麼特別不對嗎? – zerkms

+0

是的,我的提供商不支持cron作業,我聽說wordpress的admin文件夾有一個永久運行並執行wordpress cron函數的ajax處理程序文件。 –

+0

如果他們不支持cron作業 - 那麼您將如何運行腳本?什麼會運行它? – zerkms

回答

2

如果您無法訪問服務器上的cron作業(我猜你正在共享主機上運行?),最好的選擇是運行「外部cron」。看看www.setcronjob.com。我已經使用了幾個月,並且非常穩定。

  1. 您可以進行設置,以便每當需要時調用網站上的腳本。 (例如:http://www.yoursite.com/script.xxx
  2. 在腳本中,您可以運行MySQL查詢以檢查哪些用戶已被禁用了幾個小時,然後解除它們。
+0

我需要一個值得的服務信任,因爲我有真正重要的數據。 –

+0

不要以爲他們有一個API。是的,這是唯一的一次,每月更新。我還沒有遇到任何其他可靠的選擇。 –

+0

我的意思是還有其他類似的服務,但是,這個似乎是最可靠的。 –

2

您可以從命令行啓動您的腳本並讓它在後臺運行。您必須以這樣的方式設計此腳本,使其不會退出,只需使用sleep()函數即可永久循環,從而避免不必要的處理器負載。由於從命令行調用的php腳本沒有最大執行時間,因此腳本將運行,直到您使用kill命令手動將其關閉。

一旦你寫的腳本,你可以這樣做:

nohup php myscript.php & 

nohup使得一旦你退出,你從啓動它的控制檯會話腳本仍然運行,否則會殺死然後。末尾的&符號作爲後臺的新進程啓動腳本,以便您可以繼續使用控制檯。

+0

在你終止你的ssh會話後不會被殺死嗎? – zerkms

+1

@zerkms這就是'nohup'的用途。它將進程設置爲忽略SSH會話關閉時發送的「掛斷」信號,以便繼續運行。見:http://en.wikipedia.org/wiki/Nohup –

相關問題