PHP请求";“背景中”;
有没有一种方法可以在用户不必等待响应的情况下发出PHP请求?某种“后台php请求” 例如,如果应用程序需要发送100封电子邮件,因为用户已提交了某些内容,我不想为此用户显示“正在发送…请稍候”,但我希望其他脚本独立于该用户执行此任务…选项:PHP请求";“背景中”;,php,background,request,Php,Background,Request,有没有一种方法可以在用户不必等待响应的情况下发出PHP请求?某种“后台php请求” 例如,如果应用程序需要发送100封电子邮件,因为用户已提交了某些内容,我不想为此用户显示“正在发送…请稍候”,但我希望其他脚本独立于该用户执行此任务…选项: 插入一个db(或一个文件)并使用cron对其进行轮询(最简单,因为您可能已经使用了db) 使用类似或(我最喜欢的)的东西 生成一个单独的进程来使用/(不建议这样做) 正如其他人所建议的,通过使用Ajax请求来伪造它。可行——但我觉得很难看 您可以通过Ajax
您可以通过Ajax将请求发送到UI,这样UI不会冻结,任务将在服务器上执行?您可以通过Ajax发送请求,然后在成功后将用户重定向到其他位置。服务器脚本仍将处理,但不会向用户提供确认
exec('php script.php > /dev/null & echo $!', $o);
您可能还想使用php cli
而不是php
。
上面的命令以$o[0]的形式返回后台脚本的进程id,这样,如果您想向用户显示它的进度,您可以设置一些东西来使用ajax或其他东西轮询它。创建一个php例程来执行发送电子邮件的实际工作,并使用该技术通过http GET调用它。如果用户同时离开页面怎么办?脚本还会被执行吗?@domagoj412-是。如果请求到达web服务器,它将工作。用户不会得到响应,就像Emil说的,如果请求转到服务器,无论客户端做什么,服务器都不会停止,但是客户端不会收到来自服务器的任何文本通知。应该完成这项工作,并且不需要您为“异步PHP”配置其他Queue messaging system.google,然后检查