国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

讓windows開發(fā)支持代碼熱更新,workerman-filemonitor for windows

lxping

workerman-filemonitor只能用于linux,但是我們平時(shí)開發(fā)都是用的windows?;趙orkerman-filemonitor二次修改,可完美實(shí)現(xiàn)windwos開發(fā)時(shí)的代碼熱更新。

經(jīng)過測(cè)試,windows下不能直接在filemonitor啟動(dòng)的進(jìn)程中獲取我們需要的父進(jìn)程,所以需要在你啟動(dòng)的gateway文件中添加如下代碼(該代碼一定要放在Worker::runAll()之前)

require_once __DIR__ . '/FileMonitor.php';
new FileMonitor($web, 'www', 5);

FileMonitor.php

<?php

use \Workerman\Worker;
use \Workerman\Lib\Timer;

/**
 * workerman-filemonitor for windows
 *
 * 監(jiān)控文件更新并自動(dòng)reload workerman
 *
 * 使用方法:
 * require_once __DIR__ . '/FileMonitor.php';
 * new FileMonitor($worker, $dir, $timer);
 */
class FileMonitor
{
    //待監(jiān)聽的項(xiàng)目目錄
    private $_monitor_dir = '';

    //熱更新間隔時(shí)間,默認(rèn)3s
    private $_interval = 0;

    //最后一次同步時(shí)間
    private $_last_time = 0;

    function __construct ($worker, $dir, $timer = 3)
    {
        // watch Applications catalogue
        $this->_monitor_dir = __DIR__ .'/'. $dir;

        $this->_interval = $timer;

        $this->_last_time = time();

        // Emitted when data received
        $worker->reloadable = false;

        // Emitted when data received
        $worker->onWorkerStart = function()
        {
            // watch files only in daemon mode
            if (Worker::$daemonize === false)
            {
                // chek mtime of files per second 
                Timer::add($this->_interval, [$this, 'monitor']);
            }
        };
    }

    //監(jiān)聽器,kill進(jìn)程
    public function monitor ()
    {
        // recursive traversal directory
        $iterator = new RecursiveDirectoryIterator($this->_monitor_dir);
        $iterator = new RecursiveIteratorIterator($iterator);

        foreach ($iterator as $file)
        {
            // only check php files
            if (pathinfo($file, PATHINFO_EXTENSION) != 'php') continue;

            // check mtime
            if ($this->_last_time < $file->getMTime())
            {
                exec('taskkill -f -pid '. getmypid());
                $this->_last_time = $file->getMTime();
                return true;
            }
        }
    }
}
5190 4 0
4個(gè)評(píng)論

朕震驚了

太感謝了,正需要呢就來了

  • 暫無評(píng)論
walkor

很有用的分享,非常感謝

  • 暫無評(píng)論
天道酬勤

學(xué)習(xí)了

  • 暫無評(píng)論
walkor

從webman 1.2.3 版本開始支持支持windows下熱更新了。windows下的啟動(dòng)方式為雙擊 windows.bat.

  • theonewu 2022-04-17

    剛想問,就看到boss的回答了。

年代過于久遠(yuǎn),無法發(fā)表評(píng)論

lxping

633
積分
0
獲贊數(shù)
0
粉絲數(shù)
2019-12-27 加入
??