我有一個php文件,它從外部API中提取一些數據,並且我希望它每隔幾個小時(或每隔幾天)安排一次。有些googleing讓我變成了「計劃任務」,但似乎我需要運行我自己的服務器才能做到這一點?在預定的時間運行PHP文件?
到目前爲止,我所做的所有PHP和MySQL都非常簡單的填寫表格,所以我有點失落。我是否需要將計算機變成服務器來執行此操作,還是應該查看允許您運行腳本的主機?我不確定我在找什麼。
問題:我將如何能夠阻止其他人運行PHP腳本(爲此需要大量的API調用)?
我有一個php文件,它從外部API中提取一些數據,並且我希望它每隔幾個小時(或每隔幾天)安排一次。有些googleing讓我變成了「計劃任務」,但似乎我需要運行我自己的服務器才能做到這一點?在預定的時間運行PHP文件?
到目前爲止,我所做的所有PHP和MySQL都非常簡單的填寫表格,所以我有點失落。我是否需要將計算機變成服務器來執行此操作,還是應該查看允許您運行腳本的主機?我不確定我在找什麼。
問題:我將如何能夠阻止其他人運行PHP腳本(爲此需要大量的API調用)?
你現在如何運行腳本? Windows還是Linux? Linux對於cron來說是一件輕鬆的事情:在一個支持PHP的服務器上,簡單地將PHP腳本放在某處,編輯crontab然後離開你!
Ex。對於每2小時
0 */2 * * * /usr/local/bin/php /path/to/script.php
編輯回覆:蘋果
launchd顯然是運行計劃任務的首選方法,但據我所知,OS X有cron的能力,以及作爲一個UNIX衍生物。
,只是在運行XAMPP(apache,mysql,ftp)時導航到瀏覽器中的本地文件。 – Andrw
Mac運行BSD,所以cronjob可以工作。 PHP的路徑可能不同,所以只要找出那一點,你就可以走了。 –
不要忘記* nix中經常被遺忘和孤獨的'at'和'batch'命令。 –
cronjobs是爲它做...你可以在的cPanel檢查Cron作業.. 我假設你的網站在麗努環境推出
http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
你可以找到關於後臺進程的更多更多exlaination
http://www.fijiwebdesign.com/blog/create-a-background-process-on-the-server-with-php.html
如果您的網絡服務器比較繁忙,那麼您可以簡單地檢查一下自上次運行腳本以來多長時間。如果超過兩個小時,運行它。
只要確保更新時間並以原子方式運行腳本,以免啓動腳本的多個副本。您可以使用包含上一次運行腳本的文件來執行此操作,您在檢查並更新它時鎖定鎖定。
http://stackoverflow.com/questions/120228/php-running-scheduled-jobs-cron-jobs。對於您的側面問題,需要祕密查詢參數以供腳本運行。 –
您使用的是哪個版本的Windows,以及您的機器何時開機? – hafichuk
我正在使用mac,但我也有一個windows 7桌面。 Mac是一臺筆記本電腦,所以它是不同的,桌面很難在Mac上使用 – Andrw