获取swoole异步任务返回的结果代码示例
时间: 2024-05-08 11:01:32 浏览: 74
php swoole异步任务实现代码(包括服务器端、客户端).rar
5星 · 资源好评率100%
以下是一个示例代码,用于获取Swoole异步任务返回的结果:
```php
<?php
$server = new Swoole\Server('127.0.0.1', 9501);
$server->on('Receive', function ($server, $fd, $reactor_id, $data) {
$task_id = $server->task($data);
echo "异步任务已投递,task_id={$task_id}\n";
});
$server->on('Task', function ($server, $task_id, $reactor_id, $data) {
// 执行异步任务,返回结果
$result = doSomething($data);
// 将结果发送给Worker进程
$server->finish($result);
});
$server->on('Finish', function ($server, $task_id, $data) {
// 接收异步任务的结果
echo "异步任务已完成,task_id={$task_id},result={$data}\n";
});
$server->start();
function doSomething($data)
{
// 执行异步任务的代码
return '异步任务的结果';
}
```
当一个客户端连接到服务器并发送数据时,服务器会将数据投递给异步任务,在执行异步任务的过程中,服务器可以继续处理其它客户端的请求。当异步任务完成后,服务器会将结果发送给Worker进程,并在`Finish`事件中接收异步任务的结果。
阅读全文