<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 請求返回后繼續執行 在一些請求中,我們會做一些日志的推送、用戶數據的統計等和返回給終端數據無關的操作。而這些操作,即使你用異步非阻塞的方式,在終端看來,也是會影響速度的。這個和我們的原則:**_終端請求,需要用最快的速度返回給終端_**,是沖突的。 這時候,最理想的是,獲取完給終端返回的數據后,就斷開連接,后面的日志和統計等動作,在斷開連接后,后臺繼續完成即可。 怎么做到呢?我們先看其中的一種方法: ~~~ local response, user_stat = logic_func.get_response(request) ngx.say(response) ngx.eof() if user_stat then local ret = db_redis.update_user_data(user_stat) end ~~~ 沒錯,最關鍵的一行代碼就是[ngx.eof()](http://wiki.nginx.org/HttpLuaModule#ngx.eof), 它可以即時關閉連接,把數據返回給終端,后面的數據庫操作還會運行。比如上面代碼中的 ~~~ local response, user_stat = logic_func.get_response(request) ~~~ 運行了0.1秒,而 ~~~ db_redis.update_user_data(user_stat) ~~~ 運行了0.2秒,在沒有使用ngx.eof()之前,終端感知到的是0.3秒,而加上ngx.eof()之后,終端感知到的只有0.1秒。 需要注意的是,**_你不能任性的把阻塞的操作加入代碼,即使在ngx.eof()之后。_** 雖然已經返回了終端的請求,但是,nginx的worker還在被你占用。所以在keep alive的情況下,本次請求的總時間,會把上一次eof()之后的時間加上。如果你加入了阻塞的代碼,nginx的高并發就是空談。 有沒有其他的方法來解決這個問題呢?我們會在[ngx.timer.at](#)里面給大家介紹更優雅的方案。
                  <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>

                              哎呀哎呀视频在线观看