【问题标题】:jQuery POST multithreaded delaysjQuery POST 多线程延迟
【发布时间】:2017-10-05 01:06:39
【问题描述】:

我正在使用 PHP 代码中的多线程 POST 请求。

由于这些请求可能需要很长时间,我决定对这些 POST 请求进行多线程处理,以通过使用多个连接来更快地完成任务。

此时我用 javascript 编写了调度程序,它执行对 request_helper.php 的 POST 请求(使用 jQuery post 命令),并观察当时是否有多达 4 个待处理的请求。理论上我可以快 4 倍地获取数据。

我开始使用 request_helper.php 的内容:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'on');
sleep(20);
exit (0);
?>

同时运行 4 个 POST 请求。 20 秒后,我收到了 4 个 POST 响应。太好了!

但是,如果我添加 start_session() - 我需要检查用户是否有权限:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'on');
// always load or start session
session_start();
sleep(20);
exit (0);
?>

第一个请求的响应需要 20 秒,但第二个 - 40 秒,第三个 3 秒 - 看起来 session_start 可以同时处理一个请求。我实际上失去了多线程。

为什么会发生这种情况,如何做得更好?

【问题讨论】:

    标签: php multithreading session post


    【解决方案1】:

    您可以通过这种方式使用会话,但您需要在发送下一个请求之前解锁会话。

    session_write_close();

    应该这样做。

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      相关资源
      最近更新 更多