개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.20 04:41

SwooleProcess::alarm 사용시 알람이 발생하지 않는 문제

목록
  • Rust연구가 3일 전 2025.07.20 04:41
  • 33
    1
저는 SwooleProcess::alarm를 사용하여 프로세스에 알람을 설정하였으나, 알람이 발생하지 않는 문제가 있습니다.

SwooleProcess::alarm를 사용한 예제는 다음과 같습니다.
php

$process = new SwooleProcess(function($worker) {

    $worker->alarm(10); // 10초 후 알람 발생

    $worker->wait();

}, 1);



$process->start();


이러한 예제에서 알람이 발생하지 않는 이유를 알고 싶습니다.

알람이 발생하지 않는 이유는 무엇이며, 어떻게 해결할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  3일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,203건 / 9 페이지

검색

게시물 검색