设置
我有一个重定位到自己的PHP脚本。有点像...
if($val) {
header('Location: ' . ROOTPATH . $_SERVER['PHP_SELF']);
die();
}
问题
脚本逐行遍历表格,至少 45s处理每一行。该表可以为空,也可以有数百行。该脚本一旦到达表的末尾就退出。
如果我只是使用一个循环遍历表格,我几乎肯定会最终触发default_socket_timeout
,每行的处理时间过长。相反,我选择创建一个自己的新流程,同时终止当前的流程。
问题
但这是否像我在想的那样起作用?在header()
后跟die()
的情况下,我是否在单独的线程上创建了一个新进程,并终止了当前(旧)的进程?或者他们在彼此内部递归堆叠,只会加剧我试图避免的问题?
此外......(敬畏,废话)
我目前正在使用浏览器测试所有内容,但此脚本最终将由CRON-Job启动。在输入时,我感觉header()
对于通过CRON和I was right运行的进程不起作用。呸。骗子。
我仍然有兴趣了解header()
的原始问题 - 因为我将使用它进行测试 - 但现在我遇到了一个新问题,因为我需要以某种方式从内部重新初始化脚本相同的脚本(在单独的线程/进程上,同时终止当前脚本)。一切都是对CRON友好的。
我试图寻找这个新问题的解决方案,但什么都没有出现。也许这个问题有一个行话,我不熟悉?
谢谢!
答案 0 :(得分:0)
我不认为标头符合您的想法,它只是设置HTTP响应标头。在'Location:'的情况下,它的302重定向到另一个URL。浏览器将跟随链接,如果浏览器访问另一个页面,浏览器可能会启动新进程。但这不适用于cron,因为根本没有收到http响应头。