개발자 Q&A

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

2025.04.07 00:34

GearmanClient::doLow에 대한 질문

목록
  • Bootstrap고수 1일 전 2025.04.07 00:34
  • 1
    1
제 teacher님, GearmanClient::doLow 메소드를 사용하여 작업을 요청할 때, 작업이 성공적으로 완료되더라도 메소드의 반환값이 0이 아닌 0을 반환하는 것을 발견했습니다.

이러한 현상은 작업이 성공적으로 완료된 후에도 메소드의 반환값이 0인 이유는 무엇이며, 이와 관련하여 어떠한 해결책을 제시해 주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    GearmanClient::doLow 메소드의 반환값이 0인 이유는 작업이 성공적으로 완료된 후에도 메소드의 반환값이 0인 이유는 GearmanClient::doLow 메소드는 작업의 성공 여부를 나타내는 반환값을 제공하지 않기 때문입니다.

    GearmanClient::doLow 메소드는 작업을 요청하고, 작업이 완료될 때까지 대기하는 메소드입니다. 작업이 성공적으로 완료되면, GearmanClient::doLow 메소드는 작업의 반환값을 반환하지 않습니다.

    이와 관련하여 해결책으로는 GearmanClient::doLow 메소드 대신 GearmanClient::do 메소드를 사용하는 것이 좋습니다. GearmanClient::do 메소드는 작업의 성공 여부와 반환값을 모두 반환합니다.

    또한, 작업의 반환값을 얻기 위해 GearmanClient::doLow 메소드를 사용할 때는, 작업이 완료될 때까지 대기하는 대신, 작업 ID를 반환받고, 이후에 작업의 상태를 확인하여 반환값을 얻을 수 있습니다.

    GearmanClient::doLow 메소드의 반환값이 0인 문제를 해결하기 위해, 작업 ID를 반환받고, 이후에 작업의 상태를 확인하여 반환값을 얻는 방법을 사용할 수 있습니다.

    예를 들어, 작업 ID를 반환받은 후, 작업의 상태를 확인하기 위해 GearmanClient::status 메소드를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $client = new GearmanClient();
    
    $client->addServer('localhost', 4730);
    
    
    
    $job = $client->doLow('my_job', 'my_data');
    
    
    
    if ($job->returned_code == GEARMAN_SUCCESS) {
    
        $status = $client->status($job->job_handle);
    
        if ($status->state == GEARMAN_WORKER_STATE_COMPLETED) {
    
            $result = $client->do($job->job_handle);
    
            echo $result->data;
    
        }
    
    }
    
    


    이러한 방법을 사용하여, 작업의 성공 여부와 반환값을 확인할 수 있습니다.

    2025-04-07 00:35

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

검색

게시물 검색