Notepad++Good Luck To You!

swoole异步处理简单例子

因工作需要使用异步任务,来应对接口大量请求,此处是示例。

<?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.

«    2023年7月    »
12
3456789
10111213141516
17181920212223
24252627282930
31
TOP 搜索
TOP 控制面板
您好,欢迎到访网站!
  查看权限
TOP 最新留言
    TOP 作者列表
    TOP 站点信息
    • 文章总数:163
    • 页面总数:0
    • 分类总数:6
    • 标签总数:20
    • 评论总数:0
    • 浏览总数:312004
    召唤伊斯特瓦尔