1.Gatewayworker中,进行redis的初始化
在Gatewayworker中,进行redis的初始化,需要在Events::onWorkerStart中进行。
Events::onWorkerStart是每个进程生命周期内都只会触发一次,所以适合进行初始化的操作,包括定时器以及mysql等初始化操作。
redis的初始化实际上在其他回调函数中也可以进行,但是由于在public static function onMessage($client_id, $message) 函数中,会有定时器的功能,众多数量级的用户反复执行onMessage,会造成时时刻刻都在初始化redis的情况产生,影响系统功效。
所以redis的初始化操作,肯定是要在Events::onWorkerStart中进行。
在Gatewayworker中使用redis,我直接使用了phpredis扩展,而没有使用Gatewayworker里面的redis-react,因为redis-react是一个实验性组件,有隐藏BUG,不适用于商业及生产环境。
不需要安装新的组件,方便多了。可以直接使用phpredis的语句即可进行redis的初始化和业务调用。
初始化代码:
//强烈建议在onWorkerStart回调中初始化redis、mysql数据库连接,
public static function onWorkerStart($businessWorker)
{
echo "Gatewayworker Start\n";
ini_set('default_socket_timeout', -1); //redis不超时
global