<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # swoole_server->reload 重啟所有worker進程。 ```php bool swoole_server->reload(bool $only_reload_taskworkrer = false) ``` * `$only_reload_taskworkrer` 是否僅重啟task進程 一臺繁忙的后端服務器隨時都在處理請求,如果管理員通過kill進程方式來終止/重啟服務器程序,可能導致剛好代碼執行到一半終止。 這種情況下會產生數據的不一致。如交易系統中,支付邏輯的下一段是發貨,假設在支付邏輯之后進程被終止了。會導致用戶支付了貨幣,但并沒有發貨,后果非常嚴重。 Swoole提供了柔性終止/重啟的機制,管理員只需要向SwooleServer發送特定的信號,Server的worker進程可以安全的結束。 * `SIGTERM`: 向主進程/管理進程發送此信號服務器將安全終止 * 在PHP代碼中可以調用`$serv->shutdown()`完成此操作 * `SIGUSR1`: 向主進程/管理進程發送`SIGUSR1`信號,將平穩地restart所有worker進程 * 在PHP代碼中可以調用`$serv->reload()`完成此操作 * swoole的reload有保護機制,當一次reload正在進行時,收到新的重啟信號會丟棄 * 如果設置了user/group,Worker進程可能沒有權限向master進程發送信息,這種情況下必須使用root賬戶,在shell中執行kill指令進行重啟 * reload指令對`addProcess`添加的用戶進程無效 ```shell #重啟所有worker進程 kill -USR1 主進程PID ``` 1.7.7版本增加了僅重啟task_worker的功能。只需向服務器發送SIGUSR2即可。 ```shell #僅重啟task進程 kill -USR2 主進程PID ``` > 平滑重啟只對onWorkerStart或onReceive等在Worker進程中include/require的PHP文件有效,Server啟動前就已經include/require的PHP文件,不能通過平滑重啟重新加載 > 對于Server的配置即$serv->set()中傳入的參數設置,必須關閉/重啟整個Server才可以重新加載 > Server可以監聽一個內網端口,然后可以接收遠程的控制命令,去重啟所有worker Process模式 ---- 在`Process`模式下,來自客戶端的TCP連接是在`Master`進程內維持的,`worker`進程的重啟和異常退出,不會影響連接本身。 Reload有效范圍 ---- Reload操作只能重新載入Worker進程啟動后加載的PHP文件,建議使用`get_included_files`函數來列出哪些文件是在`WorkerStart`之前就加載的PHP文件,在此列表中的PHP文件,即使進行了reload操作也無法重新載入。比如要關閉服務器重新啟動才能生效。 ```php $serv->on('WorkerStart', function($serv, $workerId) { var_dump(get_included_files()); //此數組中的文件表示進程啟動前就加載了,所以無法reload }); ``` APC/OpCache ---- 如果PHP開啟了APC/OpCache,reload重載入時會受到影響,有2種解決方案 * 打開APC/OpCache的stat檢測,如果發現文件更新APC/OpCache會自動更新OpCode * 在onWorkerStart中執行apc_clear_cache或opcache_reset刷新OpCode緩存 參考 ---- * [附錄:Linux信號列表](https://wiki.swoole.com/wiki/page/158.html)
                  <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>

                              哎呀哎呀视频在线观看