개발자 Q&A

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

2025.06.18 23:16

SwooleServer::clearTimer 관련 질문

목록
  • 네트워크마법사 오래 전 2025.06.18 23:16
  • 69
    1
제가 SwooleServer::clearTimer 함수를 사용하여 타이머를 설정하고 싶습니다. 하지만 타이머를 삭제하는 방법에 대해 정확히 이해하지 못하여 도움을 요청합니다.

타이머를 삭제하는 메소드는 clearTimer 함수가 맞는지요? 만약 그렇다면 이 메소드는 어떤 파라미터를 받아야 하는지 알려주시면 감사하겠습니다.

예를 들어, 다음과 같은 코드를 작성하였는데 clearTimer 함수의 사용법에 대해 알려주세요.

php

$serv = new swoole_server("0.0.0.0", 9501);

$serv->on('Start', function($serv) {

    $serv->addTimer(1, function($serv) {

        echo "Timer 1n";

    });

});



$serv->on('Timer', function($serv, $timer_id) use ($serv) {

    if ($timer_id == 1) {

        $serv->clearTimer($timer_id); // clearTimer 함수 사용 방법에 대한 질문입니다.

    }

});



위 코드에서 clearTimer 함수를 사용한 부분이 올바른지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  오래 전



    SwooleServer::clearTimer 함수는 타이머를 삭제하는 데 사용됩니다. 이 함수는 타이머 ID를 매개변수로 받습니다. 타이머 ID는 addTimer 함수에서 반환하는 ID입니다.

    위 코드에서 clearTimer 함수를 사용한 부분은 올바릅니다. 타이머 ID가 1인 경우, clearTimer 함수를 호출하여 타이머를 삭제합니다.

    만약 타이머를 삭제하지 않고, 다시 타이머를 설정하고 싶다면, 타이머 ID를 다시 addTimer 함수에 전달하면 됩니다.

    다만, 타이머 ID는 고유해야 하므로, 같은 ID를 다시 사용하면 이전 타이머가 삭제되지 않고, 새로운 타이머가 생성됩니다.

    따라서, 타이머를 삭제하고 다시 설정할 때는, 이전 타이머 ID를 삭제한 후, 새로운 타이머 ID를 사용하는 것이 좋습니다.

    예를 들어, 위 코드에서 clearTimer 함수를 호출한 후, 다시 addTimer 함수를 호출하여 새로운 타이머를 설정할 수 있습니다.

    #hostingforum.kr
    php
    
    $serv->on('Timer', function($serv, $timer_id) use ($serv) {
    
        if ($timer_id == 1) {
    
            $serv->clearTimer($timer_id);
    
            $serv->addTimer(2, function($serv) {
    
                echo "Timer 2n";
    
            });
    
        }
    
    });
    
    


    위 코드에서, 타이머 ID가 1인 경우, clearTimer 함수를 호출하여 타이머를 삭제한 후, 다시 addTimer 함수를 호출하여 새로운 타이머를 설정합니다.

    2025-06-18 23:17

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

검색

게시물 검색