问题说明:
1、基于 GatewayWorker 框架
2、项目里没有 Events.php ,没有 BusinessWorker,只有一个独立的 start_xxxworker.php 文件,封装一个独立功能的worker,对内监听一个6000端口
3、本项目部署在一台单独的服务器上,其他服务器程序通过 AsyncTcpConnection('tcp://127.0.0.1:6000') 与该项目通讯
-------------------------- start_xxxworker.php 代码开始 ----------------------------
$worker = new Worker("tcp://127.0.0.1:6000");
$worker->name = 'MyWorker';
$worker->count = 4;
$worker->registerAddress = '127.0.0.1:1238';
$worker::$stdoutFile = 'workerman.log';
//初始化方法
$worker->onWorkerStart = function($worker){
.....
};
//接收到消息
$worker->onMessage = function($connection, $message){
.....
};
if(!defined('GLOBAL_START')) {
Worker::runAll();
}
-------------------------- start_xxxworker.php 结束 ----------------------------
问题是:
修改 start_xxxworker.php 里的 onMessage 方法内代码并重新部署后,可以看到服务器执行了Workerman reloading,但是程序修改并未生效。
请问有什么办法,使修改 onMessage 内代码后,reload 生效?
不想使用多个 Gateway,以及多个 Events。
谢谢
已经找到解决方法,参考:
http://wenda.workerman.net/?/question/1988