
SwooleEvent::defer는 이벤트 발생 후에 호출되는 함수입니다. 이 함수는 이벤트 발생 시점에 호출되지 않고, 이벤트가 끝난 후에 호출되는 이유는 SwooleEvent::defer가 이벤트 루프의 끝에서 호출되기 때문입니다.
이벤트 루프가 종료되기 전에 defer 함수를 호출하려면, defer 함수를 이벤트 발생 시점에 호출할 수 있는 방법은 없습니다. 하지만, 이벤트 루프가 종료되기 전에 defer 함수를 호출하고 싶다면, defer 함수를 이벤트 발생 시점에 호출한 후, 이벤트 루프를 다시 시작하는 방법을 사용할 수 있습니다.
예를 들어, 이벤트 발생 시점에 defer 함수를 호출한 후, 이벤트 루프를 다시 시작하는 코드는 다음과 같습니다.
#hostingforum.kr
php
$event = new SwooleEvent($server);
$event->on('start', function ($server) {
// 이벤트 발생 시점에 defer 함수를 호출
SwooleEvent::defer(function () use ($server) {
// 이벤트 루프를 다시 시작
$server->start();
});
});
이 코드는 이벤트 발생 시점에 defer 함수를 호출하고, 이벤트 루프를 다시 시작하여 defer 함수를 이벤트 발생 시점에 호출할 수 있습니다.
2025-05-28 21:48