
SwooleProcess::alarm를 사용하여 프로세스에 알람을 설정할 때 알람이 발생하지 않는 이유는 두 가지 경우가 있습니다.
1. 프로세스가 종료된 경우: 프로세스가 종료되면 알람이 발생하지 않습니다. 따라서 프로세스가 종료되지 않도록 ensureSuspendable() 함수를 호출하여 프로세스를 중단할 수 있습니다.
2. 알람이 발생한 후 프로세스가 종료된 경우: 알람이 발생한 후 프로세스가 종료되면 알람이 발생하지 않습니다. 따라서 프로세스가 종료되지 않도록 wait() 함수를 호출하여 프로세스를 기다릴 수 있습니다.
다음은 예제입니다.
#hostingforum.kr
php
$process = new SwooleProcess(function($worker) {
$worker->alarm(10); // 10초 후 알람 발생
$worker->ensureSuspendable(); // 프로세스 중단
$worker->wait(); // 프로세스 기다림
}, 1);
$process->start();
또는
#hostingforum.kr
php
$process = new SwooleProcess(function($worker) {
$worker->alarm(10); // 10초 후 알람 발생
$worker->wait(); // 프로세스 기다림
}, 1);
$process->start();
이러한 예제에서 알람이 발생하지 않는 이유는 프로세스가 종료되지 않도록 ensureSuspendable() 함수를 호출하여 프로세스를 중단하거나 wait() 함수를 호출하여 프로세스를 기다리기 때문입니다.
2025-07-20 04:42