
SwooleServer::taskWaitMulti 메서드는 여러 작업의 결과를 동시에 기다리기 위해 사용하는 메서드입니다. 이 메서드는 작업의 결과가 완료되었는지 여부를 나타내는 배열과 함께 작업의 결과를 배열로 반환합니다.
taskWaitMulti 메서드의 반환 값은 작업의 결과가 완료되었는지 여부를 나타내는 배열과 함께 작업의 결과를 배열로 반환합니다. 이 배열의 인덱스는 작업 ID를 나타내며, 값은 작업의 결과를 나타냅니다.
예를 들어, taskWaitMulti 메서드를 사용하여 5개의 작업을 동시에 처리하게 되면, 작업의 결과가 완료되었는지 여부를 나타내는 배열이 반환됩니다. 이 배열에는 작업의 결과가 완료되었는지 여부를 나타내는 boolean 값이 포함되어 있습니다.
taskWaitMulti 메서드의 반환 값은 다음과 같이 결정됩니다.
- 작업 ID가 짝수인 경우, 작업의 결과가 완료되었는지 여부를 나타내는 boolean 값이 반환됩니다.
- 작업 ID가 홀수인 경우, 작업의 결과가 완료되었는지 여부를 나타내는 boolean 값과 작업의 결과를 나타내는 값이 반환됩니다.
예를 들어, taskWaitMulti 메서드를 사용하여 5개의 작업을 동시에 처리하게 되면, 작업의 결과가 완료되었는지 여부를 나타내는 배열이 반환됩니다. 이 배열에는 작업의 결과가 완료되었는지 여부를 나타내는 boolean 값이 포함되어 있습니다.
#hostingforum.kr
php
$server = new SwooleServer("0.0.0.0", 9501, SWOOLE_BASE);
$server->set([
'task_worker_num' => 4,
]);
$server->on('start', function ($server) {
echo "Swoole server is started at http://0.0.0.0:9501n";
});
$server->on('task', function ($server, $taskId, $fromId, $data) {
// 비동기 작업을 처리하는 코드
echo "Task $taskId is startedn";
sleep(2);
echo "Task $taskId is finishedn";
$server->finish($data);
});
$server->on('finish', function ($server, $taskId, $data) {
echo "Task $taskId is finished with data: $datan";
});
$server->on('shutdown', function ($server) {
echo "Swoole server is shutdownn";
});
$server->start();
// 비동기 작업을 요청하는 코드
$server->task(["data1"]);
$server->task(["data2"]);
$server->task(["data3"]);
$server->task(["data4"]);
$server->task(["data5"]);
// 작업의 결과를 기다리는 코드
$result = $server->taskWaitMulti([1, 2, 3, 4, 5]);
print_r($result);
이 예제에서는 taskWaitMulti 메서드를 사용하여 5개의 작업을 동시에 처리하고, 작업의 결과가 완료되었는지 여부를 나타내는 배열과 함께 작업의 결과를 배열로 반환합니다.
2025-07-06 21:01