设置了$worker->count = 4;每个worker都作为channel组件的client连接了server,都订阅了某个事件.每次publish事件时候,四个进程都响应了这个事件。我只想要一个进程响应该事件。多用户请求同时出发publish事件时候分给这四个进程分别去处理。
只让一个进程监听这个事件,代码类似
$worker = new Worker('websocket://0.0.0.0:1234'); $worker->onWorkerStart = function($worker){ // 只在0号进程监听某个事件 if ($worker->id == 0) { Channel::on('事件', functiong(){}); } };
一个进程处理这个事件可能会不够,我最后还是决定改为队列+多进程来处理这个问题了。谢谢你的回答
只让一个进程监听这个事件,代码类似
一个进程处理这个事件可能会不够,我最后还是决定改为队列+多进程来处理这个问题了。谢谢你的回答