swoole은 밀리초 수준의 세분성을 갖춘 JavaScript와 유사한 setInterval/setTimeout 비동기 고정밀 타이머를 제공합니다. 사용 방법도 매우 간단합니다.
swoole은 주기율기 사용을 제공합니다 사용하려면 (배우는 것이 좋습니다: swoole 동영상 튜토리얼 )
$server->tick(1000, function() use ($server, $fd) { $server->send($fd, "hello world"); });
처음에는 이렇게 사용했습니다. 시작할 때 코드를 보세요
<?php $serv = new Swoole\Server("0.0.0.0", 9501); $serv->set(array( 'worker_num' => 1, //worker process num )); $serv->on('connect', function ($serv, $fd){ echo "客户端 ".$fd."连接成功 \n"; }); $serv->on('receive', function ($serv, $fd, $reactor_id, $data) { echo "客户端 ".$fd."发来消息:".$data."\n"; $serv->send($fd, 'Swoole已经介绍到您发送的消息: '.$data); }); $serv->on('close', function ($serv, $fd) { echo "客户端 {$fd}关闭连接\n"; }); $serv->on('WorkerStart', function ($serv, $worker_id){ $serv->tick(2000, function(){ echo "执行定时器任务 ".time()." \n"; }); }); $serv->start();
타이머를 사용하기 위해 onWorkStart에 넣었습니다. 이렇게 하면 단일 작업자 프로세스에서 타이머가 정상적으로 실행될 수 있습니다. 그러나 swoole의 경우 단일 프로세스에서 작동하도록 하면 분명히 해당 "재능"을 모욕하게 되므로 work_num을 설정했습니다. 2. 그러던 중 사진과 같이 사고가 발생했습니다
위 내용은 스울의 타이머 적용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!