国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

swoole 清除定時(shí)器提示no timer

lk20150415 / 2015人閱讀

摘要:首頁確定一個(gè)核心概念僅可清除當(dāng)前進(jìn)程的定時(shí)器代碼如下啟動(dòng)服務(wù)器本意圖實(shí)現(xiàn)啟動(dòng)后循環(huán)輸出,連接后清除定時(shí)器的效果,然而事件是在進(jìn)程的主線程中被調(diào)用,而事件是在進(jìn)程中被回調(diào),這里不屬于同一進(jìn)程,故連接后會(huì)提示

首頁確定一個(gè)核心概念

clearTimer僅可清除當(dāng)前進(jìn)程的定時(shí)器

server代碼如下:

serv = new swoole_server("0.0.0.0", 9501);
        $this->serv->set([
            "worker_num" => 8,
            "daemonize" => false,
        ]);

        $this->serv->on("Start", [$this, "onStart"]);
        $this->serv->on("Connect", [$this, "onConnect"]);
        $this->serv->on("Receive", [$this, "onReceive"]);
        $this->serv->on("Close", [$this, "onClose"]);

        $this->serv->start();
    }

    public function onStart($serv)
    {
        $this->echoStr("Server Starting");
        $this->timer = $serv->tick(1000, function(){
            $this->echoStr("timer waiting");
        });
        // $this->timer = swoole_timer_tick(1000, function() {
        // });
    }

    public function onConnect($serv, $fd, $from_id)
    {
        // swoole_timer_clear($this->timer);
        $serv->clearTimer($this->timer);
        $this->echoStr("Connecting! Clear Timer!");
        // $serv->send($fd, "Hello {$fd}!");
    }

    public function onReceive(swoole_server $serv, $fd, $from_id, $data)
    {
        $this->echoStr("Get Message From Client {$fd}:{$data}");
        $serv->send($fd, $data);
    }

    public function onClose($serv, $fd, $from_id)
    {
        $this->echoStr("Client {$fd} close connection");
    }

    public function echoStr($msg)
    {
        echo "[" . date("Y-m-d H:i:s") . "]: " . $msg . PHP_EOL;
    }
}
// 啟動(dòng)服務(wù)器 Start the server
$server = new Server();

本意圖實(shí)現(xiàn)server啟動(dòng)后循環(huán)輸出“timer waiting”,client連接后清除定時(shí)器的效果,然而onStart事件是在Master進(jìn)程的主線程中被調(diào)用,而onConnect事件是在work進(jìn)程中被回調(diào),這里不屬于同一進(jìn)程,故client連接后會(huì)提示:

PHP Warning:  SwooleServer::clearTimer(): no timer...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/29469.html

相關(guān)文章

  • swoole——從入門到放棄(二)

    摘要:從入門到放棄二一異步毫秒定時(shí)器設(shè)置一個(gè)間隔時(shí)鐘定時(shí)器,與定時(shí)器不同的是定時(shí)器會(huì)持續(xù)觸發(fā),直到調(diào)用清除。是一次性函數(shù),執(zhí)行完成后就會(huì)銷毀最大不超過使用定時(shí)器來刪除定時(shí)器。 swoole——從入門到放棄(二) 一、異步毫秒定時(shí)器 swoole_timer_tick:設(shè)置一個(gè)間隔時(shí)鐘定時(shí)器,與after定時(shí)器不同的是tick定時(shí)器會(huì)持續(xù)觸發(fā),直到調(diào)用swoole_timer_clear清...

    awokezhou 評(píng)論0 收藏0
  • swoole——從入門到放棄(二)

    摘要:從入門到放棄二一異步毫秒定時(shí)器設(shè)置一個(gè)間隔時(shí)鐘定時(shí)器,與定時(shí)器不同的是定時(shí)器會(huì)持續(xù)觸發(fā),直到調(diào)用清除。是一次性函數(shù),執(zhí)行完成后就會(huì)銷毀最大不超過使用定時(shí)器來刪除定時(shí)器。 swoole——從入門到放棄(二) 一、異步毫秒定時(shí)器 swoole_timer_tick:設(shè)置一個(gè)間隔時(shí)鐘定時(shí)器,與after定時(shí)器不同的是tick定時(shí)器會(huì)持續(xù)觸發(fā),直到調(diào)用swoole_timer_clear清...

    tinyq 評(píng)論0 收藏0
  • Swoole 源碼分析——進(jìn)程管理 Swoole_Process

    摘要:清空主進(jìn)程殘留的定時(shí)器與信號(hào)。設(shè)定為執(zhí)行回調(diào)函數(shù)如果在回調(diào)函數(shù)中調(diào)用了異步系統(tǒng),啟動(dòng)函數(shù)進(jìn)行事件循環(huán)。因此為了區(qū)分兩者,規(guī)定并不允許兩者同時(shí)存在。 前言 swoole-1.7.2 增加了一個(gè)進(jìn)程管理模塊,用來替代 PHP 的 pcntl 擴(kuò)展。 PHP自帶的pcntl,存在很多不足,如 pcntl 沒有提供進(jìn)程間通信的功能 pcntl 不支持重定向標(biāo)準(zhǔn)輸入和輸出 pcntl 只...

    pepperwang 評(píng)論0 收藏0
  • Swoole 源碼分析——Async 異步事件系統(tǒng) Swoole_Event

    摘要:利用將傳入的轉(zhuǎn)為文件描述符新建對(duì)象,并對(duì)其設(shè)置文件描述符讀寫回調(diào)函數(shù)檢測是否存在,并對(duì)其進(jìn)行初始化。如果傳入在中不存在返回,用于修改事件監(jiān)聽的回調(diào)函數(shù)和掩碼。異常事件回調(diào)函數(shù)當(dāng)發(fā)現(xiàn)套接字發(fā)生錯(cuò)誤后,就會(huì)自動(dòng)刪除該套接字的監(jiān)聽。 前言 對(duì)于異步的任務(wù)來說,Server 端的 master 進(jìn)程與 worker 進(jìn)程會(huì)自動(dòng)將異步的事件添加到 reactor 的事件循環(huán)中去,task_wor...

    stefanieliang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<