
GearmanClient의 wait 메서드는 작업의 완료를 기다리기 위해 사용됩니다. 이 메서드의 반환값으로 받은 jobHandle이 NULL인 경우에는 작업이 제출되지 않았거나, 작업이 제출되었지만 아직 완료되지 않은 경우를 의미합니다.
jobHandle이 NULL인 경우에는 작업을 다시 제출하는 것보다, 작업의 상태를 확인하는 메서드인 GearmanClient::jobStatus를 사용하여 작업의 상태를 확인하는 것이 더 적합합니다. 이 메서드는 작업의 상태를 반환하여, 작업이 완료되지 않았는지, 완료되었는지, 또는 실패했는지 확인할 수 있습니다.
예를 들어, 다음과 같이 jobStatus 메서드를 사용하여 작업의 상태를 확인할 수 있습니다.
#hostingforum.kr
php
$jobHandle = $client->wait();
if ($jobHandle !== NULL) {
$status = $client->jobStatus($jobHandle);
if ($status == GEARMAN_JOB_STATUS_SUCCESS) {
// 작업이 완료되었습니다.
} elseif ($status == GEARMAN_JOB_STATUS_QUEUED) {
// 작업이 제출되었습니다. 그러나 아직 완료되지 않았습니다.
} elseif ($status == GEARMAN_JOB_STATUS_WORKING) {
// 작업이 진행 중입니다.
} elseif ($status == GEARMAN_JOB_STATUS_FAIL) {
// 작업이 실패했습니다.
}
} else {
// 작업이 제출되지 않았습니다.
}
이러한 방법으로, jobHandle이 NULL인 경우를 예외 처리할 필요 없이, 작업의 상태를 확인하여 적절한 처리를 할 수 있습니다.
2025-04-21 16:08