定时脚本PHP
我试图弄清楚如何用PHP编写时间脚本。基本上,让我们假设在我的应用程序中,我想按一定的时间间隔执行一项任务(例如,每天向用户发送电子邮件通知,在特定时间执行一些数据库清理等)。这种脚本(调度)是如何在PHP中完成的?如果在PHP中不可能,那么如何使用什么语言?我是Linux和Windows共享主机帐户,所以如果可能的话,我希望这个方法是通用的定时脚本PHP,php,timer,scheduled-tasks,execution,Php,Timer,Scheduled Tasks,Execution,我试图弄清楚如何用PHP编写时间脚本。基本上,让我们假设在我的应用程序中,我想按一定的时间间隔执行一项任务(例如,每天向用户发送电子邮件通知,在特定时间执行一些数据库清理等)。这种脚本(调度)是如何在PHP中完成的?如果在PHP中不可能,那么如何使用什么语言?我是Linux和Windows共享主机帐户,所以如果可能的话,我希望这个方法是通用的 非常感谢您的帮助。您正在寻找cron工作 我只是安排运行PHP脚本的cron作业 */5 * * * * php /var/www/cron/cleanu
非常感谢您的帮助。您正在寻找cron工作
我只是安排运行PHP脚本的cron作业
*/5 * * * * php /var/www/cron/cleanup-db.php
另一种(与Windows兼容的)方法是运行一个持久的PHP脚本,该脚本会休眠一段时间,在唤醒时检查是否需要运行任何作业。例如,检查是否有任何挂起的请求在N小时内未收到响应或提醒电子邮件。在Unix计算机上,您使用,它用于重新发生的作业。在Windows上,等价物是要完成Adam的回答,在Windows中,您有机会进行计划任务,可以按给定的时间间隔进行编程。我们就是这样做的 我看到的问题是,您谈论的是共享主机,可能您没有在该环境中安排任务的权限。在这种情况下,您应该询问您的系统管理员,如果这样的任务是可用的
还有另一个要求:如果您有可用的php cli,则可以使用php完成任务,因此也可以查看它。Cron是一个明显的选择,但您可能无法使用它,因为您的站点托管在“共享”环境中。尝试在线服务,根据您设置的时间表自动生成对URL的http请求。Google“schedule http request online”,有很多这样的服务,其中一些是免费的或有免费选项。您的服务器上有cron吗?这是触发任何基于时间的脚本的常用工具。您有命令行吗?在那里键入“which crontab”我可以访问SSH,但没有直接的命令行(终端)访问权限,因为它是一个共享主机帐户。我试着在SSH上运行这个命令,它给了我
-bash:which:command not found
如何让PHP脚本进入睡眠状态?有一个内置的调用,还有一些其他的调用(请参见文档页面底部的“)@miki725:(抱歉,karma太低了,无法评论Adam的答案)该函数是否会干扰PHP max_的执行时间?例如,如果我有一个100秒的最大执行时间,我想让PHP休眠200秒,这会给我一个错误吗?PHP cli有它自己的配置,与mod_PHP分开,所以这应该不是问题。例如,有一些桌面程序是用PHP+GTK之类的GUI编写的,因此执行时间不是问题。