我的脚本被服务器调用。我将从服务器接收 ID_OF_MESSAGE 和 TEXT_OF_MESSAGE。
在我的脚本中,我将处理传入的文本并使用参数生成响应:ANSWER_TO_ID 和 RESPONSE_MESSAGE。
问题是我正在向传入的“ID_OF_MESSAGE”发送响应,但是向我发送消息以进行处理的服务器会将其消息设置为已传递给我(这意味着我可以将他的响应发送到该 ID),收到 http 响应 200 后。
解决方案之一是将消息保存到数据库并创建一些每分钟运行一次的 cron,但我需要立即生成响应消息。
是否有一些解决方案如何发送到服务器http响应200并继续执行php脚本?
非常感谢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
是的。你可以这样做:
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