라이브러리

[PHP] SwooleTimer::after - 일정 시간 후 콜백 함수를 트리거합니다.




SwooleTimer::after 소개


SwooleTimer::after는 Swoole의 타이머 기능 중 하나로, 특정 시간 후에 함수를 호출하는 기능을 제공합니다. 이 기능은 PHP에서 스레드 안전한 타이머를 사용할 수 있게 해주며, 비동기적으로 작업을 처리할 수 있습니다.

사용법


SwooleTimer::after 함수는 다음과 같은 형식으로 사용할 수 있습니다.

#hostingforum.kr
php

SwooleTimer::after($delay, $callback, ...$args);



- `$delay`: 타이머를 호출할 시간의 초 단위입니다.
- `$callback`: 호출할 함수입니다.
- `$args`: 함수에 전달할 인자입니다.

예제


다음 예제는 SwooleTimer::after를 사용하여 5초 후에 "타이머가 호출되었습니다."라는 메시지를 출력하는 코드입니다.

#hostingforum.kr
php

use SwooleTimer;



function callback() {

    echo "타이머가 호출되었습니다.
";

}



Timer::after(5000, 'callback');



이 코드는 5초 후에 "타이머가 호출되었습니다."라는 메시지를 출력합니다.

스레드 안전


SwooleTimer::after는 스레드 안전한 함수입니다. 여러 스레드가 동시에 타이머를 호출하는 경우에도 문제가 발생하지 않습니다.

중첩 호출


SwooleTimer::after를 중첩 호출할 수 있습니다. 다음 예제는 5초 후에 "타이머가 호출되었습니다."라는 메시지를 출력하고, 10초 후에 "타이머가 다시 호출되었습니다."라는 메시지를 출력하는 코드입니다.

#hostingforum.kr
php

use SwooleTimer;



function callback1() {

    echo "타이머가 호출되었습니다.
";

    Timer::after(10000, 'callback2');

}



function callback2() {

    echo "타이머가 다시 호출되었습니다.
";

}



Timer::after(5000, 'callback1');



이 코드는 5초 후에 "타이머가 호출되었습니다."라는 메시지를 출력하고, 10초 후에 "타이머가 다시 호출되었습니다."라는 메시지를 출력합니다.

취소


SwooleTimer::after를 취소할 수 있습니다. 다음 예제는 5초 후에 "타이머가 호출되었습니다."라는 메시지를 출력하는 코드입니다. 3초 후에 타이머를 취소합니다.

#hostingforum.kr
php

use SwooleTimer;



function callback() {

    echo "타이머가 호출되었습니다.
";

}



$timerId = Timer::after(5000, 'callback');



Timer::clear($timerId);



이 코드는 타이머를 3초 후에 취소합니다. 타이머가 호출되지 않습니다.

결론


SwooleTimer::after는 PHP에서 스레드 안전한 타이머를 사용할 수 있게 해주는 기능입니다. 타이머를 호출할 시간, 호출할 함수, 함수에 전달할 인자를 지정할 수 있습니다. 스레드 안전하고 중첩 호출이 가능하며 취소할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 93 페이지

검색

게시물 검색