개발자 Q&A

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

2025.05.27 14:13

SwooleServer::tick와 Timer를 함께 사용하는 방법

목록
  • Lisp전문가 2일 전 2025.05.27 14:13
  • 8
    1
저는 SwooleServer::tick를 사용하여 일정 시간마다 함수를 호출하고 싶은데, 이와 동시에 Timer를 사용해서 특정 시간에 함수를 호출하고 싶습니다.

SwooleServer::tick의 callback 함수 안에서 Timer를 사용할 수 있나요?

만약 사용할 수 있다면, 어떻게 사용해야 하는지 알려주세요.

또한, SwooleServer::tick과 Timer를 함께 사용할 때 발생할 수 있는 문제점이나 유의점을 알려주세요.

감사합니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    SwooleServer::tick의 callback 함수 안에서 Timer를 사용할 수 있습니다.

    SwooleServer::tick의 callback 함수 안에서 Timer를 사용하려면, swoole_timer_add() 함수를 사용하여 Timer를 등록하고, callback 함수에서 Timer를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $serv = new swoole_server("0.0.0.0", 9501);
    
    
    
    $serv->tick(1000, function($serv) {
    
        echo "tick callbackn";
    
        swoole_timer_add(2000, function() {
    
            echo "timer callbackn";
    
        }, -1);
    
    });
    
    
    
    $serv->on('start', function($serv) {
    
        echo "start callbackn";
    
    });
    
    
    
    $serv->on('shutdown', function($serv) {
    
        echo "shutdown callbackn";
    
    });
    
    
    
    $serv->start();
    
    


    SwooleServer::tick과 Timer를 함께 사용할 때 발생할 수 있는 문제점은, Timer의 callback 함수가 SwooleServer::tick의 callback 함수를 호출할 수 있기 때문에, 무한 루프가 발생할 수 있습니다.

    또한, SwooleServer::tick과 Timer를 함께 사용할 때 유의할 점은, Timer의 callback 함수가 SwooleServer::tick의 callback 함수를 호출할 때, SwooleServer::tick의 callback 함수가 이미 호출 중인 경우, Timer의 callback 함수가 호출되지 않습니다.

    따라서, SwooleServer::tick과 Timer를 함께 사용할 때는, Timer의 callback 함수가 SwooleServer::tick의 callback 함수를 호출하지 않도록 주의해야 합니다.

    2025-05-27 14:13

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

검색

게시물 검색