php中Swoole的热更新实现代码实例
如何安装inotify就不写了,安装之后可以建立一个脚本文件,如php_reload.sh:
#!/bin/sh #src需要监控的地址 src=/home/server/Project/test/app/ /usr/bin/inotifywait-rmq-ecreate,modify,delete$src|whilereadevent do /home/server/Project/test/bin/httpserverreload done
linuxshell写swoole重启脚本
代码如下
#!/bin/sh kill`lsof-t-i:9501` sleep2 php/data/web/mircoweb/wwwroot/Public/swoole.php sleep1 netstat-ntlp
如果不支持lsof命令那就yuminstalllsof安装下吧
swoole服务平滑重启
1.reload.sh脚本
echo"loading..." pid="pidoflive_name" echo$pid kill-USR1$pid echo"loadingsuccess"
2.linux中执行
sh reload.sh
代码用的原来只是自己加了一些操作流程
swoole_reload_server.php
serv=newswoole_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(); } publicfunctiononStart($serv){ echo"Start\n"; cli_set_process_title("reload_master"); } publicfunctiononWorkerStart($serv,$worker_id){ require_once"reload_page.php"; Test(); } publicfunctiononConnect($serv,$fd,$from_id){ echo"Client{$fd}connect\n"; } publicfunctiononReceive(swoole_server$serv,$fd,$from_id,$data){ echo"GetMessageFromClient{$fd}:{$data}\n"; } publicfunctiononClose($serv,$fd,$from_id){ echo"Client{$fd}closeconnection\n"; } } newServer();
reload.sh
echo"Reloading..." cmd=$(pidofreload_master) kill-USR1"$cmd" echo"Reloaded"
reload_page.php
到此这篇关于php中SWOOLE的热更新实现代码实例的文章就介绍到这了,更多相关php中SWOOLE的热更新实现内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。