我有一个php文件从外部API中提取一些数据,我希望每隔几小时(或每隔几天)安排一次。一些googleing让我进入“预定任务”,但似乎我需要运行自己的服务器才能完成它?
到目前为止,我所做的所有PHP和MySQL都是非常简单的表单填充,所以我有点迷失。我是否需要将计算机变为服务器才能执行此操作,还是应该查看允许您运行脚本的主机?我不确定我在寻找什么。
附带问题:我如何能够阻止其他人运行PHP脚本(因此需要进行大量的API调用)?
答案 0 :(得分:4)
你现在如何运行脚本? Windows还是Linux? Linux是cron的明智之举:在支持PHP的服务器上,只需将PHP脚本放在某处,编辑crontab即可离开!
实施例。每2个小时
0 */2 * * * /usr/local/bin/php /path/to/script.php
编辑Re:Mac
launchd显然是运行计划任务的首选方法,但据我所知,OS X具有cron功能以及UNIX衍生功能。
答案 1 :(得分:1)
cronjobs是为它制作的......你可以在cpanel中查看Cron Jobs。 我假设您的网站是在Linu环境中启动的
http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
您可以找到关于后台流程的更多摘要
http://www.fijiwebdesign.com/blog/create-a-background-process-on-the-server-with-php.html
答案 2 :(得分:1)
如果您有一个相当繁忙的Web服务器,您可以每次检查自上次运行脚本以来的时间。如果超过两个小时,请运行它。
只需确保更新时间并以原子方式运行脚本,这样就不会启动脚本的多个副本。您可以使用包含上次运行脚本的文件执行此操作,并在检查和更新时锁定。