Gearman GearmanClient::doStatus
(PECL gearman >= 0.5.0)
GearmanClient::doStatus — 실행 중인 작업의 상태 가져오기
설명
public GearmanClient::doStatus(): array
실행 중인 작업의 상태를 반환합니다. 반복되는 GearmanClient::doNormal() 호출 사이에 사용해야 합니다.
매개변수
이 함수에는 매개변수가 없습니다.
반환 값
첫 번째 요소가 분자이고 두 번째 요소가 분모인 분수로 지정된 완료율을 나타내는 배열입니다.
Examples
예제 #1 장기 실행 작업의 상태 가져오기
이 예제의 작업자는 반전될 문자열을 처리하는 동안 인위적인 지연이 추가되었습니다. 각 지연 후에 클라이언트가 선택하는 GearmanJob::status()를 호출합니다.
<?php
echo "Starting\n";
# Create our client object.
$gmclient= new GearmanClient();
# Add default server (localhost).
$gmclient->addServer();
echo "Sending job\n";
# Send reverse job
do
{
$result = $gmclient->doNormal("reverse", "Hello!");
# Check for various return packets and errors.
switch($gmclient->returnCode())
{
case GEARMAN_WORK_DATA:
break;
case GEARMAN_WORK_STATUS:
# get the current job status
list($numerator, $denominator)= $gmclient->doStatus();
echo "Status: $numerator/$denominator complete\n";
break;
case GEARMAN_WORK_FAIL:
echo "Failed\n";
exit;
case GEARMAN_SUCCESS:
break;
default:
echo "RET: " . $gmclient->returnCode() . "\n";
exit;
}
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);
echo "Success: $result\n";
?>
위의 예는 다음과 유사한 결과를 출력합니다.
Starting Sending job Status: 1/6 complete Status: 2/6 complete Status: 3/6 complete Status: 4/6 complete Status: 5/6 complete Status: 6/6 complete Success: !olleH
기타
- GearmanClient::doNormal() - 단일 작업 실행 및 결과 반환
- GearmanJob::status() - 전송 상태(더 이상 사용되지 않음)