라이브러리

[PHP] GearmanWorker::wait - 작업 서버 중 하나에서 활동을 기다립니다.




GearmanWorker::wait는 GearmanWorker 클래스의 메소드 중 하나로, 작업을 대기하는 메소드입니다. 이 메소드는 작업이 할당되기를 기다리며, 할당된 작업이 있으면 작업을 처리하고, 없으면 다시 대기합니다.

GearmanWorker::wait의 사용법


GearmanWorker::wait 메소드는 다음과 같은 형식으로 사용할 수 있습니다.

#hostingforum.kr
php

$worker = new GearmanWorker();

$worker->addServer('localhost', 4730);

$worker->background();

$worker->wait();



예제


다음 예제는 GearmanWorker::wait 메소드를 사용하여 작업을 대기하는 예제입니다.

#hostingforum.kr
php

<?php



// GearmanWorker 인스턴스 생성

$worker = new GearmanWorker();



// 서버 추가

$worker->addServer('localhost', 4730);



// 백그라운드 모드 설정

$worker->background();



// 작업 대기

while (true) {

    $worker->wait();



    // 할당된 작업이 있으면 처리

    if ($worker->returnCode() == GEARMAN_WORKER_IDLE) {

        // 할당된 작업이 없을 때 대기

    } elseif ($worker->returnCode() == GEARMAN_WORKER_TIMEOUT) {

        // 타임아웃 발생

    } else {

        // 작업 처리

        $job = $worker->job();

        $job->setWorkload('Hello, World!');

        $job->sendWorkload();

        $job->receiveResults();

        echo "Received result: " . $job->getResult() . "
";

    }

}



?>



예제 설명


이 예제는 GearmanWorker::wait 메소드를 사용하여 작업을 대기하는 예제입니다. 작업이 할당되면, 작업을 처리하고 결과를 출력합니다. 작업이 할당되지 않으면, 다시 대기합니다.

GearmanWorker::wait의 반환값


GearmanWorker::wait 메소드는 다음과 같은 반환값을 가집니다.

* GEARMAN_WORKER_IDLE: 할당된 작업이 없을 때 반환
* GEARMAN_WORKER_TIMEOUT: 타임아웃 발생할 때 반환
* GEARMAN_WORKER_ERROR: 오류 발생할 때 반환

GearmanWorker::wait의 사용 시 주의사항


GearmanWorker::wait 메소드는 작업을 대기하는 메소드이므로, 작업이 할당되지 않으면 무한대기 상태가 될 수 있습니다. 따라서, 작업이 할당되지 않으면 다시 대기하는 로직을 구현해야 합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 534 페이지

검색

게시물 검색