<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Task Worker --- <!-- toc --> ## 簡介 Task Worker是Swoole中一種特殊的工作進程,該進程的作用是處理一些耗時較長的任務,以達到釋放Worker進程的目的。Worker進程可以通過`swoole_server`對象的task方法投遞一個任務到Task Worker進程,其流程如下所示: <!-- {% sequence %} Worker->Task Worker: task() Note right of Task Worker: onTask() Task Worker->Worker: finish() Note left of Worker: onFinish() {% endsequence %} --> Worker進程通過Unix Sock管道將數據發送給Task Worker,這樣Worker進程就可以繼續處理新的邏輯,無需等待耗時任務的執行。需要注意的是,由于Task Worker是獨立進程,因此無法直接在兩個進程之間共享全局變量,需要使用Redis、MySQL或者swoole_table來實現進程間共享數據。 ## 實例 要使用Task Worker,需要進行一些必要的操作。 首先,需要設置swoole_server的配置參數: ```php $serv->set(array( 'task_worker_num' => 2, // 設置啟動2個task進程 )); ``` 接著,綁定必要的回調函數: ```php $serv->on('Task', 'onTask'); $serv->on('Finish','onFinish'); ``` 其中兩個回調函數的原型如下所示: ```php /** * @param $serv swoole_server swoole_server對象 * @param $task_id int 任務id * @param $from_id int 投遞任務的worker_id * @param $data string 投遞的數據 */ function onTask(swoole_server $serv, $task_id, $from_id, $data); /** * @param $serv swoole_server swoole_server對象 * @param $task_id int 任務id * @param $data string 任務返回的數據 */ function onFinish(swoole_server $serv, $task_id, $data); ``` 在實際邏輯中,當需要發起一個任務請求時,可以使用如下方法調用: ```php $data = "task data"; $serv->task($data , -1 ); // -1代表不指定task進程 // 在1.8.6+的版本中,可以動態指定onFinish函數 $serv->task($data, -1, function (swoole_server $serv, $task_id, $data) { echo "Task Finish Callback\n"; }); ```
                  <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>

                              哎呀哎呀视频在线观看