我有一个约500行的表,将来会扩展。
在background.php
中,我创建了一些PDF并将电子邮件和传真发送到此表的每条记录:这需要一定的时间,这意味着我无法在浏览器窗口或AJAX上执行操作调用
现在我想创建一个后台进程(exec()或shell_exec()或proc_open()或...?),它们遍历表格并发送传真和邮件。
我不需要日志,因为脚本有一个内部日志系统。
我尝试过像
这样的事情<form method="post" action="">
<input type="submit" name="background" value="go">
</form>
if(isset($_POST['background'])){
exec('php /WEB/mysite/.../.../htdocs/test/background.php &') or echo 'Error';
}
在浏览器窗口中从用户调用background.php
!
我总是收到错误,但我不知道我有哪些错误(可能是错误)!
我不知道如何前进...
EDIT 这个网站上没有人能够正确回答我的问题? =(
答案 0 :(得分:0)
对于此和其他类似任务,您可以使用cron job。它是类Unix操作系统中基于时间的工作者。网站托管公司通常会为其客户提供此服务。
您只需要编写PHP脚本,设置应该执行的时间,之后它将在后台的指定时间运行。
答案 1 :(得分:0)
也许你应该在长操作之前调用函数write_session_close()。这将使服务器能够独立于响应先前的请求而响应ajax调用。这不会删除会话,但不会再次写入会话。但您始终可以使用session_destroy()和session_start()来重置会话。