0

假设我开启了5个worker,都是使用onpipemessage接收信息,每次处理有一定的耗时:

function test(){
    sleep(10);
    echo 'done';
}

然后我使用一个swoole_timer_tick,每秒执行10次,给随机一个worker发送sendmessage:

swoole_timer_tick(100, function()use($server){
    $status = $server->sendMessage($message,$worker_id);
    if($status) echo 'send succeed';    
});

当开启这个server,看到每秒输出10次'send succeed',可以知道每次sendMessage都是成功的,但是5个worker每次处理一个任务需要10秒,很明显可以看出worker的处理速度比sendMessage的速度要慢,随着时间推移,每个worker积压的待执行任务会越来越多。
那么可以用哪些参数或者是方法得出worker待执行任务的数量?或者说像这种输入比处理速度高的时候可以怎样进一步优化?

2019-04-09 提问
0 个回答

撰写答案

推广链接