您用於在unix風格的操作系統中安排事情的工具是cron
。如果您的服務器運行MS Windows,則需要使用其他一些調度程序。
有幾種方法可以使用cron
來運行腳本。
首先,如果您有可用的CLI版本的PHP(而不是Apache模塊或fcgi版本),則可以直接運行它。在我的系統,一個cron作業運行腳本每分鐘一次可能是這樣的:
* * * * * /usr/local/bin/php /path/to/your/script.php
注意,在您體系,php
二進制可能位於/usr/bin/
或/opt/local/bin/
或其他地方。您需要檢查操作系統的軟件包存儲庫以找到位置,或從終端輸入which php
。
如果使用「shebang」在腳本的開始,你可以擺脫一個簡單的cron作業:有關運行PHP shell腳本
* * * * * /path/to/your/script.php
更多信息,可以發現here。一個警告雖然...如果您直接啓動腳本,他們將運行作爲擁有cron作業,可能有安全(或至少是許可)影響的用戶。如果您不明白這意味着什麼,請在做之前提出更多問題!
如果不有一個命令行PHP可用,你仍然可以有通過cron運行,由像curl
或wget
或fetch
命令行HTTP客戶端獲取它的PHP腳本(取決於您的操作系統)。例如:
* * * * * curl -o /dev/null http://example.com/path/to/script.php
或
* * * * * wget -O /dev/null http://example.com/path/to/script.php
在UNIX系統上,你可以man crontab
關於如何安裝cron作業指令,以及可能man 5 crontab
(取決於您的操作系統)的說明,對於格式設置特定的時間。請注意,cron使用1分鐘的粒度。如果你想要比這更高的頻率,你可以僞裝它。例如,對於每分鐘3次:
* * * * * /path/to/your/script.php
* * * * * sleep 20; /path/to/your/script.php
* * * * * sleep 40; /path/to/your/script.php
如果你想要更小的頻率,可以使用crontab's documented format。例如,平日每隔五分鐘,但是每隔10分鐘,週末:
*/5 * * * 1-5 /path/to/your/script.php
*/10 * * * 6-7 /path/to/your/script.php
時候開始學習[WebSockets的(http://www.html5rocks.com/en/tutorials/websockets/basics/)? :) – ghoti
@ghoti實際上,他想要的很可能是cronjob更新值,第二個腳本只是爲了讀取客戶端的值。 – dbemerlin
我同意,但我仍然認爲,看看影響較小的解決方案,而不是有大量請求建立數據庫連接的客戶端會很有價值。我想另一種可能性是PHP處理程序檢查db中記錄的最後更新時間,並且只在比「X時間量」更早時更新。 – ghoti