라이브러리

[PHP] GearmanClient::setStatusCallback - 작업 상태 수집을 위한 콜백 설정




GearmanClient::setStatusCallback


GearmanClient는 PHP의 Gearman 라이브러리를 사용하여 작업을 처리하는 데 사용됩니다. setStatusCallback 메서드는 작업의 상태를 알려주는 콜백 함수를 등록하는 데 사용됩니다.

# setStatusCallback 사용 방법


setStatusCallback 메서드는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 콜백 함수 자체이며, 두 번째 매개변수는 콜백 함수에 전달할 데이터입니다.

#hostingforum.kr
php

$client = new GearmanClient();

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

$client->setStatusCallback(function($job, $status) {

    echo "작업 ID: $job->handle, 상태: $status
";

});



# setStatusCallback 예제


아래 예제에서는 setStatusCallback 메서드를 사용하여 작업의 상태를 알려주는 콜백 함수를 등록합니다. 이 콜백 함수는 작업 ID와 상태를 출력합니다.

#hostingforum.kr
php

<?php



// Gearman 서버에 연결

$client = new GearmanClient();

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



// 작업 등록

$job = $client->doBackground('my_task', 'Hello, World!');



// setStatusCallback 등록

$client->setStatusCallback(function($job, $status) {

    echo "작업 ID: $job->handle, 상태: $status
";

});



// 작업 결과를 기다립니다.

$client->wait();



?>



# setStatusCallback 사용 시 주의점


setStatusCallback 메서드는 작업의 상태를 알려주는 콜백 함수를 등록하는 데 사용됩니다. 이 콜백 함수는 작업 ID와 상태를 출력합니다. 그러나 setStatusCallback 메서드는 작업의 결과를 반환하지 않습니다. 작업의 결과를 얻으려면 doBackground 메서드를 사용하여 작업을 등록하고, wait 메서드를 사용하여 작업의 결과를 기다려야 합니다.

# setStatusCallback 예외 처리


setStatusCallback 메서드는 콜백 함수를 등록하는 데 사용됩니다. 그러나 콜백 함수가 예외를 발생시키면, GearmanClient 객체가 예외를 발생시킵니다. 예를 들어, 아래 코드에서는 setStatusCallback 메서드를 사용하여 콜백 함수를 등록하고, 콜백 함수가 예외를 발생시킵니다.

#hostingforum.kr
php

<?php



// Gearman 서버에 연결

$client = new GearmanClient();

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



// 작업 등록

$job = $client->doBackground('my_task', 'Hello, World!');



// setStatusCallback 등록

$client->setStatusCallback(function($job, $status) {

    throw new Exception('예외 발생');

});



// 작업 결과를 기다립니다.

try {

    $client->wait();

} catch (Exception $e) {

    echo "예외 발생: " . $e->getMessage() . "
";

}



?>



이 예제에서는 setStatusCallback 메서드를 사용하여 콜백 함수를 등록하고, 콜백 함수가 예외를 발생시킵니다. 예외를 처리하기 위해 try-catch 블록을 사용하여 예외를 잡아 예외 메시지를 출력합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색