如果我在我的脚本中使用<?php sleep(60); ?>
30次有问题,那么脚本将在30分钟内加载并完成其工作,是否有可能出现问题?
注意:如果失败,有没有办法做到这一点?
答案 0 :(得分:2)
客户端可能会停止侦听响应,但脚本仍然可以完成执行。您必须配置PHP安装以执行较长的执行时间。
如果您使用浏览器和AJAX请求将在30分钟后返回的数据,则最好轮询静态资源。
如果要启动脚本,请向其发送AJAX请求。此请求最终会超时。设置脚本,以便在完成后将其输出保存到静态资源(文本文件/图像/等;取决于脚本应返回的内容)。使用AJAX每五分钟轮询一次这个资源,当服务器准备就绪时,您将从服务器获得响应。
答案 1 :(得分:0)
如果您拨打sleep(60)
30次或sleep(60 * 30)
一次,则没有任何区别。
看一下php函数set_time_limit,因为标准是30秒左右。之后,您的脚本将被终止。
但是,我不知道是否有浏览器愿意等待你的请求。你想要实现什么目标?
答案 2 :(得分:0)
这个想法有几个问题。
n
秒的下一个循环。这将在您的脚本“自然”运行时间之上,因此总执行时间将为( sleep(s) * times called ) + execution_time
在cgi环境或php apache模块中执行脚本时,默认情况下,您的max_execution_time
为30秒,之后脚本将停止执行。在CLI上,默认值为0 = ~unlimited。
http://php.net/manual/en/info.configuration.php#ini.max-execution-time
最后,正如评论中所述,如果您的脚本是从浏览器调用的,那么网络服务器会在更早的时候停止运行。