
GearmanClient 클래스의 jobStatus 함수는 특정 작업의 현재 상태를 반환합니다. 이 함수의 파라미터는 작업 ID(job_id)로, 반환값은 작업의 상태를 나타내는 정수값입니다.
jobStatus 함수의 반환값은 다음과 같이 정의됩니다.
- GEARMAN_JOB_CREATED: 작업이 생성되었을 때
- GEARMAN_JOB_ASSIGN: 작업이 할당되었을 때
- GEARMAN_JOB_ENQUEUED: 작업이 대기열에 추가되었을 때
- GEARMAN_JOB_WARNING: 작업이 경고 상태가 되었을 때
- GEARMAN_JOB_FAIL: 작업이 실패했을 때
- GEARMAN_JOB_SUCCESS: 작업이 성공했을 때
- GEARMAN_JOB_TIMEOUT: 작업이 타임아웃이 되었을 때
작업의 진행 상황, 완료 여부, 오류 메시지를 확인하려면 jobStatus 함수를 호출한 후, jobGetOutput 함수를 사용하여 작업의 출력을 확인할 수 있습니다.
예제 코드는 다음과 같습니다.
#hostingforum.kr
php
$client = new GearmanClient();
$client->addServer('localhost', 4730);
$job_handle = $client->doBackground("my_job", "Hello, world!");
while ($client->jobStatus($job_handle) == GEARMAN_JOB_SERVER_WORKING) {
sleep(1);
}
if ($client->jobStatus($job_handle) == GEARMAN_JOB_SUCCESS) {
echo "작업이 성공적으로 완료되었습니다.n";
} else {
echo "작업이 실패했습니다.n";
}
$output = $client->jobGetOutput($job_handle);
echo "작업의 출력: $outputn";
이 코드는 작업의 상태를 반복적으로 확인하고, 작업이 성공적으로 완료되면 작업의 출력을 출력합니다.
2025-05-27 04:10