完成执行完整脚本之前的PHP REST API响应

时间:2017-05-12 10:37:15

标签: php json rest asynchronous response

我正在开发一个处理用户请求并以JSON格式发送响应的api。我想发送JSON响应,然后完成需要更多时间的工作,例如向用户发送邮件。 脚本伪代码

  1. 做验证
  2. 如果有效则更新数据库
  3. 如果d / b更新成功,则发送JSON响应
  4. 退出ifs和其他验证
  5. 向用户发送电子邮件
  6. 我提到了this stackoverflow solution,它在浏览器中完全按照我的要求运行,但是当我在POSTMAN或使用此API的设备中测试时,我没有得到确切的响应。 浏览器在加载整个页面时快速响应,但邮递员不会显示结果直到执行结束, 例如代码

    <?php
    ignore_user_abort(true);
    set_time_limit(0);
    ob_start();
    // do initial processing here
    echo json_encode(array("date", strtotime(date('Y-m-d H:i:s')))) . "<br />"; // send the response
    
    header('Connection: close');
    header('Content-Length: '.ob_get_length());
    ob_end_flush();
    ob_flush();
    flush();
    
    for ($i = 0; $i < 999999999; $i++) {
    
    }
    echo json_encode(array("date", strtotime(date('Y-m-d H:i:s'))));
    
    
    
    ?>
    

    上面的代码在浏览器中工作正常,但在POSTMAN REst客户端调用时,它执行的时间更长 提前致谢

0 个答案:

没有答案