zoukankan      html  css  js  c++  java
  • 详细带你了解什么是swoole 热重启?

    1. swoole 服务端文件:swoole_reload_server.php

    <?php
    /**
     * Example for swoole reload php code without shutdowning server.
     *
     * @author Lancelot https://github.com/LinkedDestiny
     */
    class Server
    <?php
    /**
     * Example for swoole reload php code without shutdowning server.
     *
     * @author Lancelot https://github.com/LinkedDestiny
     */
    class Server
    {
            private $serv;
            public function __construct() {
            $this->serv = new swoole_server("0.0.0.0", 9501);
            $this->serv->set(array(
                'worker_num' => 8,
                'daemonize' => false,
                'max_request' => 10000,
                'dispatch_mode' => 2,
                'debug_mode'=> 1,
            ));
            $this->serv->on('Start', array($this, 'onStart'));
            $this->serv->on('WorkerStart', array($this, 'onWorkerStart'));
            $this->serv->on('Connect', array($this, 'onConnect'));
            $this->serv->on('Receive', array($this, 'onReceive'));
            $this->serv->on('Close', array($this, 'onClose'));
            $this->serv->start();
        }
        public function onStart( $serv ) {
            echo "Start\n";
            cli_set_process_title("reload_master");
        }
        public function onWorkerStart( $serv , $worker_id) {
            require_once "reload_page.php";
            Test();
        }
        public function onConnect( $serv, $fd, $from_id ) {
            echo "Client {$fd} connect\n";
    
        }
        public function onReceive( swoole_server $serv, $fd, $from_id, $data ) {
            echo "Get Message From Client {$fd}:{$data}\n";
        }
        public function onClose( $serv, $fd, $from_id ) {
            echo "Client {$fd} close connection\n";
        }
    }
    new Server();

    2.重启服务脚本:reload.sh

    echo "Reloading..."
    cmd=$(pidof reload_master)
    
    kill -USR1 $cmd
    echo "Reloaded"

    3.重启测试页:reload_page.php

    <?php
    /**
     * If you change this function and want
     * swoole_server to use the new function,
     * just run 'reload.sh' to send a restart
     * signal to swoole_server.
     */
    function Test() {
            echo "This is not a php file\n";
    }

    操作流程如下

    4e4f2aa12de8a9771f25c77b9b01dae7.png

    这个时候 reload_page.php 函数还是

    <?php
    /**
     * If you change this function and want
     * swoole_server to use the new function,
     * just run 'reload.sh' to send a restart
     * signal to swoole_server.
     */
    function Test() {
            echo "This is not a php file\n";
    }

     那么我们开始修改 再执行.sh脚本 看看是否有变化

    尝试修改为

    e24f478a481a44ed827e2842d1a9ae40.png

    然后执行脚本呢  脚本 记得 chmod a+x 授权一下 

    c2332d76f400a84ec74fb3310aea5b3f.png

    发现这个原来的sever改变了 

    63e73a4ebeb51ff6ebcaaf523d91a5b6.png

    变成了 i‘m  fun  这里没加换行  大概就这样实现了热重启 

    求一键三连:点赞、转发、在看

    084acbcfbb7d2c1b076f1084ab3ca205.png

  • 相关阅读:
    “回调地址”全攻略 java程序员
    超棒的纯Javascript实现的文件上传功能 Fine uploader java程序员
    帮助你操作数字和处理数字格式的javascript类库 Numeral.js java程序员
    正则表达式 java程序员
    一款非常棒的CSS 3D下拉式菜单实现Makisu java程序员
    Google的全新在线地图API演示网站 More than a map java程序员
    Android中的布局属性 java程序员
    整理一系列优秀的Android开发源码 java程序员
    Lambda表达式select()和where()的区别
    按公式产生随机数、java中的重载、递归、有关计算机计算的问题
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15847755.html
Copyright © 2011-2022 走看看