개발자 Q&A

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

2025.05.22 10:19

GearmanClient::setClientCallback에 대한 질문입니다.

목록
  • 반응형디자인매니아 8일 전 2025.05.22 10:19
  • 11
    1
제가 공부하고 있는 내용은 Gearman을 이용한 작업 큐 시스템입니다.
GearmanClient::setClientCallback 메서드를 사용하여 작업 결과를 받을 콜백 함수를 설정하는 방법에 대해 궁금합니다.
setClientCallback 메서드는 작업 결과를 받기 위해 어떤 형태의 콜백 함수를 받을 수 있는지 궁금합니다.

제가 작성한 코드에서 setClientCallback 메서드를 호출하고, 콜백 함수를 등록하고 있지만, 콜백 함수가 호출되지 않습니다.
콜백 함수를 호출하는 로직을 확인해 주시겠습니까?

    댓글목록

    profile_image
    나우호스팅  8일 전



    GearmanClient::setClientCallback 메서드는 작업 결과를 받기 위해 콜백 함수를 등록하는 메서드입니다. 이 메서드는 함수 포인터 형태의 콜백 함수를 받을 수 있습니다. 콜백 함수의 형태는 다음과 같습니다.

    #hostingforum.kr
    cpp
    
    void callback_function(GearmanJob* job, void* data)
    
    


    job 파라미터는 현재 처리 중인 작업을 나타내며, data 파라미터는 작업에 전달된 데이터를 나타냅니다.

    콜백 함수가 호출되지 않는다면, 콜백 함수가 등록된 후에 작업이 완료되는지 확인하고, 작업이 완료된 후에 콜백 함수가 호출되는지 확인해야 합니다. 또한, 콜백 함수가 등록된 후에 작업을 제출하는 코드를 확인하여, 작업이 제출되는지 확인해야 합니다.

    콜백 함수를 호출하는 로직은 다음과 같습니다.

    1. 콜백 함수를 등록합니다.
    2. 작업을 제출합니다.
    3. 작업이 완료되면, 콜백 함수가 자동으로 호출됩니다.

    콜백 함수를 등록하는 코드는 다음과 같습니다.

    #hostingforum.kr
    cpp
    
    GearmanClient* client = gearman_client_create(NULL);
    
    gearman_client_set_client_callback(client, callback_function, NULL);
    
    


    작업을 제출하는 코드는 다음과 같습니다.

    #hostingforum.kr
    cpp
    
    gearman_job* job = gearman_client_submit_job(client, "worker_function", NULL, NULL, NULL);
    
    


    작업이 완료되면, 콜백 함수가 자동으로 호출됩니다. 콜백 함수가 호출되지 않는다면, 콜백 함수를 등록한 후에 작업을 제출하는 코드를 확인하고, 작업이 제출되는지 확인해야 합니다.

    2025-05-22 10:20

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

검색

게시물 검색