說我想要一個php腳本運行函數itstime()每小時。除了在服務器上設置cron作業,我該怎麼做?基於時間的php腳本
或者這是不可能的,因爲PHP腳本需要打開才能運行?
謝謝。
編輯:我想寫一些信息到一個日誌文件,並根據一些變量發送它在一封電子郵件。
說我想要一個php腳本運行函數itstime()每小時。除了在服務器上設置cron作業,我該怎麼做?基於時間的php腳本
或者這是不可能的,因爲PHP腳本需要打開才能運行?
謝謝。
編輯:我想寫一些信息到一個日誌文件,並根據一些變量發送它在一封電子郵件。
那麼,我絕對推薦爲此目的的cron工作。但理論上,您可以運行一個PHP腳本,運行itstime()
,休眠一個小時,然後循環。雖然這很瘋狂。
該腳本看起來像:
<?php
include('whatever.php');
while(true) {
itstime();
sleep(3600);
}
?>
一個可能會與nohup php mycrazyscript.php &
運行它從你的終端分離並使其繼續運行,並使用pkill -f mycrazyscript
終止它。
這是瘋狂的原因是,現在你已經有一個睡眠PHP進程掛在每小時59分鐘無所事事,你必須確保它在正確的時間運行和運行,哪個cron會照顧你的。
只追加混亂的答案,所以給他信用。
mrlanrat - 見this
如果您沒有訪問cron的,但有機會獲得適度繁忙的Web服務器,你可以用它來觸發每隔一小時你的函數。這就是WordPress需要cron的方式。這裏是你將如何做到這一點:
<?php
$lastrun = get_last_run_time(); // get value from database or filesystem
if(time()-$lastrun > 60*60) {
itstime();
set_last_run_time(time()); // write value back to database or filesystem
}
// The rest of your page
?>
當然,有一個非常嚴重的競爭狀態在這個代碼是。解決這個問題留給讀者。
https://www.setcronjob.com/和various other sites,爲此提供基於網絡的解決方案。你可以設置它來調用你的代碼每小時或任何你想要的代碼的腳本
<?php
itstime();
?>
我該怎麼做?爲什麼你說它瘋了? – lanrat 2009-07-22 02:49:17
是肯定不是我選擇的方法,但如果cron不是一種選擇,可能是唯一的選擇。 – Christian 2009-07-22 02:49:38
如果我使用這種方法意味着當我訪問這個頁面(要啓動腳本)它將永遠不會完成加載? 如果是這種情況,腳本會在頁面退出後停止運行? – lanrat 2009-07-22 02:56:28