黄p网站_在线看中文字幕_亚洲电影免费观看_成人激情视频_欧美成视频_中国av在线

File-Watcher 組件

用于在 EasySwoole 中實(shí)現(xiàn)熱重啟,讓開發(fā)變得更簡便。

組件要求

  • easyswoole/spl: ^1.3
  • easyswoole/component: ^2.2

安裝方法

composer require easyswoole/file-watcher

倉庫地址

easyswoole/file-watcher

WatchRule

監(jiān)控目錄:

$watchRule = new \EasySwoole\FileWatcher\WatchRule(EASYSWOOLE_ROOT."/App");

指定忽略目錄:

/**@var \EasySwoole\FileWatcher\WatchRule $watchRule **/
$watchRule->setIgnorePaths([EASYSWOOLE_ROOT."/App/Api", EASYSWOOLE_ROOT."/App/Admin"]);

指定忽略文件:

/**@var \EasySwoole\FileWatcher\WatchRule $watchRule **/
$watchRule->setIgnoreFiles([EASYSWOOLE_ROOT."/App/Api/Teacher.php", EASYSWOOLE_ROOT."/App/Admin/Teacher.php"]);

指定匹配后綴:

/**@var \EasySwoole\FileWatcher\WatchRule $watchRule **/
$watchRule->setType($watchRule::SCAN_TYPE_SUFFIX_MATCH);
//$watchRule->setType($watchRule::SCAN_TYPE_IGNORE_SUFFIX);
$watchRule->setSuffix(['php']);
type為SCAN_TYPE_SUFFIX_MATCH時(shí),只匹配后綴必須在suffix規(guī)則數(shù)組的文件。 type為SCAN_TYPE_IGNORE_SUFFIX時(shí),會(huì)忽略掉后綴在suffix規(guī)則數(shù)組的文件。

FileWatcher

設(shè)置監(jiān)控程序:

$fileWatcher = new \EasySwoole\FileWatcher\FileWatcher();
$fileWatcher->setScannerDriver(\EasySwoole\FileWatcher\Scanner\Inotify::class);
$fileWatcher->setScannerDriver(\EasySwoole\FileWatcher\Scanner\FileScanner::class);
二選一 不調(diào)用此方法 存在inotify擴(kuò)展默認(rèn)為Inotify::class反之FileScanner::class

增加監(jiān)控規(guī)則:

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
$fileWatcher->addRule(new \EasySwoole\FileWatcher\WatchRule(__DIR__));
$fileWatcher->addRule(new \EasySwoole\FileWatcher\WatchRule(EASYSWOOLE_ROOT. '/App'));
可進(jìn)行多次調(diào)用 對不同目錄設(shè)置不同的規(guī)則

設(shè)置異常回調(diào):

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
$fileWatcher->setOnException(function (\Throwable $throwable){

});

設(shè)置檢測周期(默認(rèn)1000ms):

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
$fileWatcher->setCheckInterval(1000);

設(shè)置觸發(fā)回調(diào)(文件有變化):

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
$fileWatcher->setOnChange(function (array $list, \EasySwoole\FileWatcher\WatchRule $rule){
    // list為變化的文件列表
});

啟動(dòng)(swoole服務(wù)中使用):

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
/**@var \Swoole\Server $server **/
$fileWatcher->attachServer($server);

EasySwoole 中用于熱重啟

例如在 EasySwoole 開發(fā)模式中,我們希望當(dāng)有代碼變動(dòng)的時(shí)候,實(shí)現(xiàn) Server 重啟,只需要在 EasySwoole 的全局事件 EasySwooleEvent 中注冊一下即可實(shí)現(xiàn)。 示例代碼如下:

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\FileWatcher\FileWatcher;
use EasySwoole\FileWatcher\WatchRule;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');
    }

    public static function mainServerCreate(EventRegister $register)
    {
        $watcher = new FileWatcher();
        $rule = new WatchRule(EASYSWOOLE_ROOT . "/App"); // 設(shè)置監(jiān)控規(guī)則和監(jiān)控目錄
        $watcher->addRule($rule);
        $watcher->setOnChange(function () {
            Logger::getInstance()->info('file change ,reload!!!');
            ServerManager::getInstance()->getSwooleServer()->reload();
        });
        $watcher->attachServer(ServerManager::getInstance()->getSwooleServer());
    }
}

注意,reload 僅僅針對 Worker進(jìn)程 加載的代碼有效。

主站蜘蛛池模板: 中文字幕永久第一页 | 婷婷激情五月 | 免费黄色电影在线观看 | 日韩精品久久 | 欧美一区在线观看视频 | 亚洲高清视频一区 | 国产欧美日韩综合精品一区二区 | 国产精品美女久久久久久久久久久 | 另类sb东北妇女av | 一级大毛片 | 综合久久久久久久 | av免费在线观看网站 | 理论黄色片| 日韩欧美一区二区三区久久婷婷 | 精品久久久久久久久久久久久久 | 欧美成人一区二区三区片免费 | 在线视频一区二区 | 黄色a视频| 久久久久亚洲精品 | 一区二区三区视频在线播放 | 亚洲国产日韩a在线播放性色 | 中文字幕精品一区 | 毛片91 | 国产精品黄网站在线观看 | 狠狠撸在线视频 | 日韩精品一区在线 | 欧美日韩综合精品 | 天堂在线网 | 成人av一区二区三区 | 精品国产一区av | 亚洲乱码国产乱码精品精的特点 | 在线观看亚洲视频 | 日韩一区二区三区在线 | 精一区二区| 久久9热 | 成人一级片 | 国产精品欧美一区二区三区 | 精品少妇一区二区三区 | 91精品国产综合久久久久久丝袜 | 中文字幕亚洲一区二区三区 | 九九久久久 |