
GearmanClient::runTasks 메서드는 여러 작업을 동시에 처리할 수 있지만, 작업의 결과를 받을 수 있는 방법은 다음과 같습니다.
1. 콜백 함수 사용: runTasks 메서드의 두 번째 인자로 콜백 함수를 전달할 수 있습니다. 콜백 함수는 작업이 완료될 때 호출되며, 작업의 결과를 받을 수 있습니다.
#hostingforum.kr
php
$client = new GearmanClient();
$client->addServer('localhost', 4730);
$tasks = array(
array('job' => 'task1', 'workload' => 'task1 workload'),
array('job' => 'task2', 'workload' => 'task2 workload')
);
$client->runTasks($tasks, function($job, $result) {
echo "Job: $job, Result: $resultn";
});
2. GearmanWorker::taskStatus 메서드 사용: runTasks 메서드가 실행된 후, GearmanWorker::taskStatus 메서드를 사용하여 작업의 상태를 확인할 수 있습니다. 작업의 상태가 완료일 때, 작업의 결과를 받을 수 있습니다.
#hostingforum.kr
php
$client = new GearmanClient();
$client->addServer('localhost', 4730);
$tasks = array(
array('job' => 'task1', 'workload' => 'task1 workload'),
array('job' => 'task2', 'workload' => 'task2 workload')
);
$client->runTasks($tasks);
// 작업의 상태를 확인하여 결과를 받을 수 있습니다.
while ($task = $client->taskStatus()) {
if ($task->state == 'complete') {
echo "Job: $task->job, Result: $task->datan";
}
}
오류 처리는 try-catch 블록을 사용하여 처리할 수 있습니다. 예를 들어, 작업이 실패할 경우 어떻게 해야 할까요?
#hostingforum.kr
php
try {
$client = new GearmanClient();
$client->addServer('localhost', 4730);
$tasks = array(
array('job' => 'task1', 'workload' => 'task1 workload'),
array('job' => 'task2', 'workload' => 'task2 workload')
);
$client->runTasks($tasks);
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "n";
}
또한, GearmanClient::runTasks 메서드의 두 번째 인자로 오류 처리 콜백 함수를 전달할 수 있습니다. 오류 처리 콜백 함수는 오류가 발생할 때 호출되며, 오류를 처리할 수 있습니다.
#hostingforum.kr
php
$client = new GearmanClient();
$client->addServer('localhost', 4730);
$tasks = array(
array('job' => 'task1', 'workload' => 'task1 workload'),
array('job' => 'task2', 'workload' => 'task2 workload')
);
$client->runTasks($tasks, function($job, $result) {
echo "Job: $job, Result: $resultn";
}, function($job, $result) {
echo "Error: Job: $job, Result: $resultn";
});
2025-05-31 01:58