发送http响应后继续处理php
P粉029327711
P粉029327711 2023-08-27 20:36:33
0
1
604
<p>我的脚本被服务器调用。我将从服务器接收 <code>ID_OF_MESSAGE</code> 和 <code>TEXT_OF_MESSAGE</code>。 </p> <p>在我的脚本中,我将处理传入的文本并使用参数生成响应:<code>ANSWER_TO_ID</code> 和 <code>RESPONSE_MESSAGE</code>。</p> <p>问题是我正在向传入的<code>“ID_OF_MESSAGE”</code>发送响应,但是向我发送消息以进行处理的服务器会将其消息设置为已传递给我(这意味着我可以将他的响应发送到该 ID),收到 http 响应 200 后。</p> <p>解决方案之一是将消息保存到数据库并创建一些每分钟运行一次的 cron,但我需要立即生成响应消息。 </p> <p>是否有一些解决方案如何发送到服务器http响应200并继续执行php脚本?</p> <p>非常感谢</p>
P粉029327711
P粉029327711

全部回复(1)
P粉351138462

是的。你可以这样做:

ignore_user_abort(true);//not required
set_time_limit(0);

ob_start();
// do initial processing here
echo $response; // send the response
header('Connection: close');
header('Content-Length: '.ob_get_length());
ob_end_flush();
@ob_flush();
flush();
fastcgi_finish_request();//required for PHP-FPM (PHP > 5.3.3)

// now the request is sent to the browser, but the script is still running
// so, you can continue...

die(); //a must especially if set_time_limit=0 is used and the task ends
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!