我现在使用AsyncTcpConnection作为客户端接收其他服务器推送过来的消息,但是发现有数据会漏掉,几分钟才会收到一条,但是接口那边测试没有问题,推送很快
// 远程websocket服务器发来消息时
$ws_connection->onMessage = function($connection, $data){
$data = json_decode($data,true);
if(!empty($data['S'])){
if($data['M'].$data['S'] == 'EF8937'){
echo date("Y-m-d H:i:s").":推送:{$data['P']}".PHP_EOL;
}
$gather = new Gather();
$gather->run('rf_addon_tf_futures_symbol','tf_futures_trade',$data);
// echo microtime(true)-$start . PHP_EOL;
}
};
上面是我接收的代码,我只打印了一个产品的数据,本人对workerman不是很了解,第一次用,请各位帮帮忙……
你要先排除业务逻辑问题,把业务逻辑都去掉,只记录log试下,比如
看下接收是否正常。
谢谢,我发现是我后续的操作导致的, 现在我想开一个单独处理的worker,收到消息之后交给这个worker去处理,但是我发现内存占用特别高,这个怎么处理
一样的操作,去掉业务逻辑,看下占用内存是否高,不高的话一点点加回业务逻辑代码,找到导致占用内存高的业务代码,然后具体分析。