因工作需要使用异步任务,来应对接口大量请求,此处是示例。<?php$serv=newSwoole\Http\Server("0.0.0.0",9501);$serv->on('request',func...
因工作需要使用异步任务,来应对接口大量请求,此处是示例。
<?php
$serv = new Swoole\Http\Server("0.0.0.0", 9501);
$serv->on('request', function ($request, $response) use ($serv) {
//投放任务
$serv->task('接收票务数据');
});
//设置异步任务的工作进程数量
$serv->set(['task_worker_num' => 10]);
//处理异步任务
$serv->on('task', function ($serv, $task_id, $from_id, $data) {
echo "收到新任务[id=$task_id],开始处理" . PHP_EOL;
for ($i = 0; $i < 10000000; $i++) {
//执行1000万次++
}
//执行完成调用完成
$serv->finish("$data -> OK");
});
//处理异步任务的结果
$serv->on('finish', function ($serv, $task_id, $data) {
echo "异步作务[$task_id]完成: $data" . PHP_EOL;
});
$serv->start();
http获取请求数据,可以通过$request获取,也可以用其他方式,然后投放任务。处理完成后调用finish.
全文详见:http://xpxw.com/?id=111