
SwooleServer::task는 비동기적으로 작업을 처리하는 메서드입니다. 작업이 완료된 후에 작업 결과를 메인 스레드에 전달하려면, taskWait를 사용하여 작업이 완료될 때까지 기다렸다가, 작업 결과를 받을 수 있습니다.
taskWait는 비동기적으로 작업을 처리한 후, 작업 결과를 받기 위해 사용하는 메서드입니다. 작업이 완료된 후에 작업 결과를 받을 수 있습니다.
작업이 완료된 후에 작업 결과를 메인 스레드에 전달하는 방법은 다음과 같습니다.
1. 작업을 비동기적으로 처리하기 위해 SwooleServer::task를 사용합니다.
2. 작업이 완료될 때까지 기다리기 위해 SwooleServer::taskWait를 사용합니다.
3. 작업이 완료된 후에 작업 결과를 받기 위해 SwooleServer::taskWait를 사용합니다.
예제 코드는 다음과 같습니다.
#hostingforum.kr
php
$serv = new swoole_server("0.0.0.0", 9501);
$serv->on('start', function ($serv) {
echo "Swoole server is started at 127.0.0.1:9501n";
});
$serv->on('task', function ($serv, $taskId, $fromId, $data) {
// 비동기적으로 작업을 처리합니다.
sleep(2); // 2초 동안 작업을 처리합니다.
$result = "비동기 작업이 완료되었습니다.";
// 작업 결과를 메인 스레드에 전달합니다.
$serv->finish($result);
});
$serv->on('finish', function ($serv, $taskId, $data) {
// 작업 결과를 받았습니다.
echo "작업 결과: $datan";
});
$serv->on('shutdown', function ($serv) {
echo "Swoole server is shutdownn";
});
$serv->start();
위의 예제 코드에서, SwooleServer::task를 사용하여 비동기적으로 작업을 처리하고, 작업이 완료된 후에 작업 결과를 메인 스레드에 전달합니다. 작업이 완료된 후에 작업 결과를 받기 위해 SwooleServer::taskWait를 사용하지 않습니다. 대신, SwooleServer::finish를 사용하여 작업 결과를 메인 스레드에 전달합니다.
2025-06-05 18:13