假设存在两个脚本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;
}
Run Code Online (Sandbox Code Playgroud)
小智 1
您基本上想要发出 1 个进程结束的信号(返回到原始进程Requester.php)并生成一个新进程(完成Provider.php)。可能有一种更优雅的方法来实现这一点,但我已经通过几种不同的方式实现了这一点。所有这些基本上都会导致执行命令以关闭第二个进程。
将以下内容添加> /dev/null 2>&1 &到命令末尾将允许它在后台运行,而不会抑制当前脚本的实际执行
像下面这样的东西可能对你有用:
exec("wget -O - \"$url\" > /dev/null 2>&1 &");
Run Code Online (Sandbox Code Playgroud)
-- 尽管您也可以将其作为命令行 PHP 进程来执行。
您还可以保存需要处理的信息,并在 cron 作业上处理剩余的处理,该作业无需执行即可重新创建相同类型的功能。
| 归档时间: |
|
| 查看次数: |
3441 次 |
| 最近记录: |