<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                1. swoole的go關鍵詞創建一個協程,可以簡單的理解為創建了一個線程.例如異步觸發一個監聽 ~~~ go(function () use ($test) { Event::trigger('Test', ['test' => $test]); }); ~~~ <blockquote class="danger">如果think-swoole3的版本低于`3.0.6`,在異步中使用了連接池操作(`Db/Cache`等),擴展連接池是無法回收的!!!運行`max_active`次后將報錯Uncaught RuntimeException: Borrow the connection timeout in 5.00(s), connections in pool: 0.原因是在攜程中使用的連接沒有被回收,池內連接也并未得到補充導致的.經測試3.0.6版本是可以正常使用. </blockquote> 2. TaskWorker的使用.前面章節提到過,swoole的所有事件在框架內均可以用監聽去實現,前綴為`swoole.`,`onTask`與`onFinish`也是同理. 創建兩個監聽事件 ~~~ php think make:listener SwooleTask ~~~ ~~~ php think make:listener SwooleTaskFinish ~~~ 在`event.php`加入如下代碼: ~~~ // 事件定義文件 return [ 'bind' => [ ], 'listen' => [ 'AppInit' => [], 'HttpRun' => [], 'HttpEnd' => [], 'LogLevel' => [], 'LogWrite' => [], 'swoole.task'=>['\app\listener\SwooleTask'], 'swoole.finish'=>['\app\listener\SwooleTaskFinish'], ], 'subscribe' => [ ], ]; ~~~ <details> <summary>SwooleTask.php</summary> ~~~ <?php declare (strict_types=1); namespace app\listener; use Swoole\Server\Task; class SwooleTask { /** * 事件監聽處理 * * @return mixed */ public function handle(Task $task) { var_dump('on task'); var_dump($task->data);//task的data數據即server->task()傳入的數據 $task->finish($task->data);//這里必須手動執行finish,否則不會觸發onFinish監聽事件 return ; } } ~~~ </details> <details> <summary>SwooleTaskFinish.php</summary> ~~~ <?php declare (strict_types=1); namespace app\listener; class SwooleTaskFinish { /** * 事件監聽處理 * * @return mixed */ public function handle($event) { var_dump('task finish'); var_dump($event[2]);//這里的第三個索引才是onTask傳入的data數據 return ; } } ~~~ </details> `controller`中實現`task`投遞 ~~~ <?php namespace app\controller; use app\BaseController; use Swoole\Server; class Index extends BaseController { public function index(Server $server) { $server->task(['test'=>'test value']); return ; } } ~~~ 測試如下:訪問接口地址輸出控制臺輸出如下結果 ![](https://img.kancloud.cn/87/22/8722406a12fe690c8b85b5b9740bd9bd_396x220.png)
                  <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>

                              哎呀哎呀视频在线观看