使用fastcgi_finish_request去操作耗时的事情

在访问时,要求在返回相应的数据给客户端后,后续仍需要去处理一些其它事情,例如写日志或跨站访问等,可以使用fastcgi_finish_request来立即响应数据返回并关闭网络,然后继续处理后续的工作。

<?php
echo ‘gomytest:’.date(‘Y-m-d H:i:s’);
file_put_contents(‘log.txt’, date(‘Y-m-d H:i:s’) . ” test1\n”, FILE_APPEND);
if (function_exists(“fastcgi_finish_request”)) {
      function fastcgi_finish_request()  {
      }
}
sleep(10);
file_put_contents(‘log.txt’, date(‘Y-m-d H:i:s’) . ” test2\n”, FILE_APPEND);
sleep(10);
file_put_contents(‘log.txt’, date(‘Y-m-d H:i:s’) . ” test3\n”, FILE_APPEND);
?>  

测试的结果是能立即返回,并正确处理后续操作。

image