2011-11-04 12 views
1

我有一個php文件,它從外部API中提取一些數據,並且我希望它每隔幾個小時(或每隔幾天)安排一次。有些googleing讓我變成了「計劃任務」,但似乎我需要運行我自己的服務器才能做到這一點?在預定的時間運行PHP文件?

到目前爲止,我所做的所有PHP和MySQL都非常簡單的填寫表格,所以我有點失落。我是否需要將計算機變成服務器來執行此操作,還是應該查看允許您運行腳本的主機?我不確定我在找什麼。

問題:我將如何能夠阻止其他人運行PHP腳本(爲此需要大量的API調用)?

+2

http://stackoverflow.com/questions/120228/php-running-scheduled-jobs-cron-jobs。對於您的側面問題,需要祕密查詢參數以供腳本運行。 –

+0

您使用的是哪個版本的Windows,以及您的機器何時開機? – hafichuk

+0

我正在使用mac,但我也有一個windows 7桌面。 Mac是一臺筆記本電腦,所以它是不同的,桌面很難在Mac上使用 – Andrw

回答

4

你現在如何運行腳本? Windows還是Linux? Linux對於cron來說是一件輕鬆的事情:在一個支持PHP的服務器上,簡單地將PHP腳本放在某處,編輯crontab然後離開你!

Ex。對於每2小時

0 */2 * * * /usr/local/bin/php /path/to/script.php 

編輯回覆:蘋果

launchd顯然是運行計劃任務的首選方法,但據我所知,OS X有cron的能力,以及作爲一個UNIX衍生物。

+0

,只是在運行XAMPP(apache,mysql,ftp)時導航到瀏覽器中的本地文件。 – Andrw

+0

Mac運行BSD,所以cronjob可以工作。 PHP的路徑可能不同,所以只要找出那一點,你就可以走了。 –

+0

不要忘記* nix中經常被遺忘和孤獨的'at'和'batch'命令。 –

1

如果您的網絡服務器比較繁忙,那麼您可以簡單地檢查一下自上次運行腳本以來多長時間。如果超過兩個小時,運行它。

只要確保更新時間並以原子方式運行腳本,以免啓動腳本的多個副本。您可以使用包含上一次運行腳本的文件來執行此操作,您在檢查並更新它時鎖定鎖定

相關問題