我寫一下我的理解。假設(shè)我使用創(chuàng)建了十個進(jìn)程,代碼如下:
'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來處理數(shù)據(jù),我是不是應(yīng)該在onWorkerStart函數(shù)里執(zhí)行
$this->mongo = Db::connection('mongodb');
這里我需要定義一個mongo變量嗎?
如果需要,是不是只是為了方便寫呢?
這樣一共就只會創(chuàng)建十個mongodb長連接對嗎。
接下來業(yè)務(wù)當(dāng)中我只需要使用
$this->mongo->collection('xxx')
就可以在進(jìn)程中使用。
假如100個用戶同時訪問,分別分到十個進(jìn)程里,每個進(jìn)程里的十個用戶是不是就會按照順序執(zhí)行代碼。
那如果沒有請求的情況下需不需要去維護(hù)這個長連接呢。
這樣做是使用這套框架的標(biāo)準(zhǔn)做法嗎?
如果不是應(yīng)該怎么做呢?
我的理解是需要在onWorkerStart里用定時器定時去查詢mongodb數(shù)據(jù)。