假设存在两个脚本Requester.php和Provider.php,并且Requester需要从Provider处理并向其发出http请求(Provider.php?data =“data”)。在这种情况下,Provider会快速找到答案,但维护系统必须在整个数据库中执行各种更新。有没有办法立即将值返回给Requester,然后继续在Provider中处理。
Psuedo Code
Provider.php
{
$answer = getAnswer($_GET['data']);
echo $answer;
//SIGNAL TO REQUESTER THAT WE ARE FINISHED
processDBUpdates();
return;
}
发布于 2018-09-27 09:11:59
您可以使用flush()命令刷新输出缓冲区。 阅读PHP手册中的注释以获取更多信息
发布于 2018-09-27 10:09:24
您基本上想要发出1个进程的结束信号(返回原始Requester.php
进程)并生成一个新进程(完成Provider.php
)。可能有更优雅的方式来解决这个问题,但我已经通过几种不同的方式进行了管理。所有这些都基本上导致执行命令以便关闭第二个进程。
将以下内容添加> /dev/null 2>&1 &
到命令的末尾将允许它在后台运行,而不会阻止当前脚本的实际执行
以下内容可能对您有用:
exec("wget -O - \"$url\" > /dev/null 2>&1 &");
- 尽管你也可以将它作为命令行PHP进程来完成。
您还可以保存需要处理的信息并处理cron作业上的剩余处理,该作业可以重新创建相同类型的功能而无需执行。
https://stackoverflow.com/questions/-100000801
复制相似问题