平滑重启业务逻辑代码没有生效

darker

cli下 运行php start.php reload (平滑重启)

在Event.php文件中的 onMessage回调中使用new class

发现class文件中的代码修改之后,php start.php reload命令后

class文件中的代码没有重效,执行的还是修改之前的代码
[attach]268[/attach]

阅读 2391
3个回答

walkor

54 55行去掉
onMessage里面直接
Gateway::sendToAll("xxxx"); reload 试下

  • darker 2016-04-05

    测试了一下,还是无效! filemonitor加入之后也是无法自动reload

  • darker 2016-04-05

    业务逻辑代码肯定是在Event.php 中onMessage方法 之外的,在onMessage中调用逻辑代码,逻辑代码修改之后,无法reload呀

walkor

reload后运行php start.php status贴下

  • darker 2016-04-05

    [root@iZ28jc59k68Z get_work]#
    [root@iZ28jc59k68Z get_work]# php start.php reload
    Workerman[start.php] reload
    Workerman[start.php] reload
    [root@iZ28jc59k68Z get_work]# php start.php status
    Workerman[start.php] status
    ---------------------------------------GLOBAL STATUS--------------------------------------------
    Workerman version:3.3.0 PHP version:5.6.13
    start time:2016-04-05 14:45:52 run 0 days 0 hours
    load average: 0.12, 0.03, 0.01 event-loop:select
    4 workers 10 processes
    worker_name exit_status exit_count
    YourAppBusinessWorker 0 20
    YourAppGateway 0 0
    Register 0 0
    FileMonitor 0 0
    ---------------------------------------PROCESS STATUS-------------------------------------------
    pid memory listening worker_name connections total_request send_fail throw_exception
    18720 0.75M none YourAppBusinessWorker 5 1 0 0
    18721 0.75M none YourAppBusinessWorker 5 1 0 0
    18722 0.75M none YourAppBusinessWorker 5 1 0 0
    18723 0.75M none YourAppBusinessWorker 5 1 0 0
    18277 0.75M text://0.0.0.0:8282 YourAppGateway 5 116 0 0
    18278 1M text://0.0.0.0:8282 YourAppGateway 8 208 0 0
    18279 0.75M text://0.0.0.0:8282 YourAppGateway 5 116 0 0
    18280 0.75M text://0.0.0.0:8282 YourAppGateway 5 116 0 0
    18281 0.75M text://0.0.0.0:1238 Register 8 28 0 0
    18282 0.75M none FileMonitor 0 0 0 0
    [root@iZ28jc59k68Z get_work]#

walkor

看起来是你在主进程加载了Event.php导致的

  • darker 2016-04-05

    这个是GatewayWorker框架里面demo,我直接按照官方demo执行的!这种情况有解决的办法吗?

  • walkor 2016-04-05

    框架是没问题的,你可以重新下载一份代码,不要加入任何业务逻辑试下

  • darker 2016-04-06

    重新下载GatewayWorker框架部署,运行之后还是无法热更新php代码!楼主能不能给个最近解决方式,尝试各种方法,按照框架部署,就是实现不了热更新!求助!

  • walkor 2016-04-06

    我这测试可以,别人也都可以