
GearmanClient::addTaskHigh 함수를 사용하여 작업을 등록하고, 작업아이디를 받은 후 작업의 상태를 가져올 때 에러가 발생하는 이유는 다음과 같습니다.
1. `doHighPriorityBackground` 함수를 사용하여 작업아이디를 가져올 때, 작업이 성공적으로 등록되지 않은 경우 `NULL` 값을 반환합니다. 따라서 `jobStatus` 함수를 호출할 때 `NULL` 값을 전달하여 에러가 발생합니다.
2. `jobStatus` 함수를 호출할 때, 작업아이디가 유효하지 않은 경우 에러가 발생합니다. 따라서 작업아이디가 유효한지 확인해야 합니다.
3. `jobStatus` 함수를 호출할 때, 작업이 완료된 경우 `NULL` 값을 반환합니다. 따라서 작업이 완료된 경우 `NULL` 값을 전달하여 에러가 발생합니다.
올바른 코드를 사용하기 위해서는 다음과 같이 수정해야 합니다.
#hostingforum.kr
php
$client = new GearmanClient();
$client->addServer("localhost", 4730);
$client->addTaskHigh("my_task", "my_function", "arg1", "arg2");
$job_handle = $client->doHighPriorityBackground("my_task");
if ($job_handle !== NULL) {
$job = $client->jobStatus($job_handle);
if ($job !== NULL) {
echo "Job ID: " . $job['job_handle'] . "n";
echo "Job Status: " . $job['state'] . "n";
} else {
echo "Job not foundn";
}
} else {
echo "Job not foundn";
}
이 코드에서는 `doHighPriorityBackground` 함수를 사용하여 작업아이디를 가져올 때, 작업이 성공적으로 등록되지 않은 경우 `NULL` 값을 반환하는 것을 확인합니다. 그리고 `jobStatus` 함수를 호출할 때, 작업아이디가 유효한지 확인하고, 작업이 완료된 경우 `NULL` 값을 반환하는 것을 확인합니다.
2025-03-16 11:24