라이브러리

[PHP] EvLoop::timer - 현재 이벤트 루프 인스턴스와 연관된 EvTimer 워처 객체를 생성합니다.




EvLoop::timer 소개


EvLoop::timer는 PHP의 EvLoop 클래스에서 제공하는 timer 함수입니다. 이 함수는 특정 시간이 지난 후에 callback 함수를 호출하는 데 사용됩니다. EvLoop::timer는 비동기적으로 작동하므로, 다른 작업을 수행할 수 있습니다.

EvLoop::timer 사용법


EvLoop::timer를 사용하려면 다음 코드를 참고하세요:

#hostingforum.kr
php

use EvEvLoop;



$loop = new EvLoop();



// 5초 후에 callback 함수를 호출합니다.

$timer = $loop->timer(5, function () {

    echo "5초가 지났습니다.
";

});



// 10초 후에 callback 함수를 호출합니다.

$timer2 = $loop->timer(10, function () {

    echo "10초가 지났습니다.
";

});



// 루프를 시작합니다.

$loop->run();



EvLoop::timer 옵션


EvLoop::timer에는 여러 옵션을 제공할 수 있습니다. 예를 들어, 반복적으로 callback 함수를 호출하고 싶다면 `repeat` 옵션을 사용할 수 있습니다.

#hostingforum.kr
php

use EvEvLoop;



$loop = new EvLoop();



// 5초마다 callback 함수를 호출합니다.

$timer = $loop->timer(5, function () {

    echo "5초가 지났습니다.
";

}, 0, true); // repeat 옵션을 true로 설정합니다.



// 루프를 시작합니다.

$loop->run();



EvLoop::timer 취소


EvLoop::timer를 취소하려면 `stop` 메서드를 사용할 수 있습니다.

#hostingforum.kr
php

use EvEvLoop;



$loop = new EvLoop();



// 5초 후에 callback 함수를 호출합니다.

$timer = $loop->timer(5, function () {

    echo "5초가 지났습니다.
";

});



// 3초 후에 timer를 취소합니다.

$loop->timer(3, function () use ($timer) {

    $timer->stop();

});



// 루프를 시작합니다.

$loop->run();



EvLoop::timer 예제


EvLoop::timer를 사용하여 간단한 타이머를 구현할 수 있습니다.

#hostingforum.kr
php

use EvEvLoop;



class Timer {

    private $loop;

    private $timers = [];



    public function __construct(EvLoop $loop) {

        $this->loop = $loop;

    }



    public function add($time, $callback) {

        $timer = $this->loop->timer($time, $callback);

        $this->timers[] = $timer;

    }



    public function run() {

        $this->loop->run();

    }



    public function stop() {

        foreach ($this->timers as $timer) {

            $timer->stop();

        }

    }

}



$loop = new EvLoop();

$timer = new Timer($loop);



// 5초마다 callback 함수를 호출합니다.

$timer->add(5, function () {

    echo "5초가 지났습니다.
";

});



// 10초마다 callback 함수를 호출합니다.

$timer->add(10, function () {

    echo "10초가 지났습니다.
";

});



// 루프를 시작합니다.

$timer->run();



// 3초 후에 timer를 취소합니다.

$loop->timer(3, function () use ($timer) {

    $timer->stop();

});



이 예제에서는 EvLoop::timer를 사용하여 간단한 타이머를 구현했습니다. 타이머는 5초마다 callback 함수를 호출하고, 10초마다 callback 함수를 호출합니다. 3초 후에 타이머를 취소합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 571 페이지

검색

게시물 검색