成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

swoole 清除定時器提示no timer

lk20150415 / 2038人閱讀

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

首頁確定一個核心概念

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

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;
    }
}
// 啟動服務(wù)器 Start the server
$server = new Server();

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

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29469.html

相關(guān)文章

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

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

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

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

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

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

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

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

    stefanieliang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<