我写一下我的理解。假设我使用创建了十个进程,代码如下:
'gateway' => [
'handler' => Gateway::class,
'listen' => 'websocket://0.0.0.0:7272',
'count' => 10,
'reloadable' => false,
'constructor' => ['config' => [
'lanIp' => '127.0.0.1',
'startPort' => 2300,
'pingInterval' => 25,
'pingData' => '{"type":"ping"}',
'registerAddress' => '127.0.0.1:1236',
'onConnect' => function(){},
]]
],
假如我是用mongodb来处理数据,我是不是应该在onWorkerStart函数里执行
$this->mongo = Db::connection('mongodb');
这里我需要定义一个mongo变量吗?
如果需要,是不是只是为了方便写呢?
这样一共就只会创建十个mongodb长连接对吗。
接下来业务当中我只需要使用
$this->mongo->collection('xxx')
就可以在进程中使用。
假如100个用户同时访问,分别分到十个进程里,每个进程里的十个用户是不是就会按照顺序执行代码。
那如果没有请求的情况下需不需要去维护这个长连接呢。
这样做是使用这套框架的标准做法吗?
如果不是应该怎么做呢?
我的理解是需要在onWorkerStart里用定时器定时去查询mongodb数据。
这里我需要定义一个mongo变量吗?
需要定义一个属性存储mongodb实例
这样一共就只会创建十个mongodb长连接对吗。
对
假如100个用户同时访问,分别分到十个进程里,每个进程里的十个用户是不是就会按照顺序执行代码。
顺序执行
这样做是使用这套框架的标准做法吗?
标准做法
谢谢巨佬!