我有2台服务器,以下简称A和B,现在要将业务拆开
A服务器负责Gateway和register,B服务器负责处理businessworker。
A服务器,start_gateway.php配置
A服务器,start_register.php配置
只配置了这两个,start_businessworker.php 被我删除了。
以下是B服务器,start_businessworker.php的配置:
当我启动B服务器时,出现报错:Waring: Events::onMessage is not callable
并且Events.php onWorkerStart方法也没有执行。
以上配置是按照官网文档来配置的,目前两个服务器都能互通,用的是阿里云同一地域下的服务器,比如B服务器使用内网IP,连接A服务器的redis等都是正常的。
以上出现的问题应该如何解决!
我在B服务器start_businessworker.php 中补充了以下代码,可以执行Events.php中的方法了,但是又遇到了通信问题。
require_once __DIR__ . '/Events.php';
$worker->eventHandler = 'Events';
public static function onWorkerStart($businessWorker)
{
if ($businessWorker->id == 0) {
echo "【0】进程号".posix_getpid().PHP_EOL;
Gateway::sendToAll("123");
}
}
onWorkerStart执行的时候客户端还没连上呢
我是让客户端先连接上,然后重启的B服务器,重启时会执行onWorkerStart。客户端连接的是A服务器,连接不会断开
A B服务器也要互相连接,B服务器启动后onWorkerStart的时候还没连上
用定时器试下
了解了,确实是这个问题,感谢