<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 并發調用 [TOC] ## 并發請求 在協程版本的`Client`中,實現了多個客戶端并發發包功能(`setDefer`機制)。 通常,如果一個業務請求中需要做一次redis請求和一次mysql請求,那么網絡IO會是這樣子: `redis發包->redis收包->mysql發包->mysql收包` 以上流程網絡IO的時間就等于 redis網絡IO時間 + mysql網絡IO時間。 而對于協程版本的Client,網絡IO可以是這樣子: `redis發包->mysql發包->redis收包->mysql收包` 以上流程網絡IO的時間就接近于`MAX(redis網絡IO時間, mysql網絡IO時間)`。 現在支持并發請求的Client有: * Swoole\\Coroutine\\Client * Swoole\\Coroutine\\Redis * Swoole\\Coroutine\\MySQL * Swoole\\Coroutine\\Http\\Client 除了`Swoole\Coroutine\Client`,其他`Client`都實現了`defer`特性,用于聲明延遲收包。 因為`Swoole\Coroutine\Client`的發包和收包方法是分開的,所以就不需要實現`defer`特性了,而其他Client的發包和收包都是在一個方法中,所以需要一個`setDefer()`方法聲明延遲收包,然后通過`recv()`方法收包。 ## setDefer 使用實例 ~~~ function onRequest($request, $response) { //并發請求 n $n = 5; for ($i = 0; $i < $n; $i++) { $cli = new Swoole\Coroutine\Http\Client('127.0.0.1', 80); $cli->setHeaders([ 'Host' => "local.ad.oa.com", "User-Agent" => 'Chrome/49.0.2587.3', 'Accept' => 'text/html,application/xhtml+xml,application/xml', 'Accept-Encoding' => 'gzip', ]); $cli->set([ 'timeout' => 2]); $cli->setDefer(); $cli->get('/test.php'); $clients[] = $cli; } for ($i = 0; $i < $n; $i++) { $r = $clients [$i]->recv(); $result[] = $clients[$i]->body; } $response->end(json_encode($data)); } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看