Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
定时脚本PHP_Php_Timer_Scheduled Tasks_Execution - Fatal编程技术网

定时脚本PHP

定时脚本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

我试图弄清楚如何用PHP编写时间脚本。基本上,让我们假设在我的应用程序中,我想按一定的时间间隔执行一项任务(例如,每天向用户发送电子邮件通知,在特定时间执行一些数据库清理等)。这种脚本(调度)是如何在PHP中完成的?如果在PHP中不可能,那么如何使用什么语言?我是Linux和Windows共享主机帐户,所以如果可能的话,我希望这个方法是通用的


非常感谢您的帮助。

您正在寻找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编写的,因此执行时间不是问题。