라이브러리
[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에서 스레드 안전한 타이머를 사용할 수 있게 해주는 기능입니다. 타이머를 호출할 시간, 호출할 함수, 함수에 전달할 인자를 지정할 수 있습니다. 스레드 안전하고 중첩 호출이 가능하며 취소할 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.