资讯专栏INFORMATION COLUMN

php swoole使用简单实例

Scorpion / 2557人阅读

摘要:本文记录一次对初步的学习和简单的使用。使用异步协程的特效,提升代码效率。使用我的业务使用场景是对应活动发奖品发积分,赠劵,礼包,希望在对用户的领取条件判断通过后,立刻给用户返回提示,然后用异步发这些奖品。

本文记录一次对swoole初步的学习和简单的使用。
欢迎讨论和吐槽。

swoole简介

Swoole是一种PHP高级Web开发框架,框架不是为了提升网站的性能,是为了提升网站的开发效率。
使用异步协程的特效,提升代码效率。

swoole使用

我的业务使用场景是对应活动发奖品(发积分,赠劵,礼包),希望在对用户的领取条件判断通过后,立刻给用户返回提示,然后用swoole异步发这些奖品。
搭建的结构如下:tools,business,servers,client文件夹。
tools下是与业务无关的工具类;
business下是业务共用类;
servers下是swoole server,处理发奖操作,可参考一下server:

set(array("task_worker_num" => 4));
$serv->on("receive", function($serv, $fd, $from_id, $data) {
    //投递异步任务
    $task_id = $serv->task($data);
    echo "receive";
});
//处理异步任务
$serv->on("task", function ($serv, $task_id, $from_id, $data) {
    sendScore($data);
    //返回任务执行的结果
    $serv->finish($data);
});
//处理异步任务的结果
$serv->on("finish", function ($serv, $task_id, $data) {
    echo "finish";
});
$serv->start();

function sendScore($data){
    //获取到$data
    $arr = json_decode($data,true);
    //判断数据是否异常
    //业务发奖代码
    return true;
}

client下,建立client class,连接server操作,业务使用的时候,不需要关注swoole的细节,只需要使用client提供的接口即可,样例如下:

connect("127.0.0.1", 9501, 1)){
            //
        }
        //向服务器发送数据
        if (!$client->send($msg)){
           //
        }
        //关闭连接
        $client->close();
    }
}

然后在业务机器上启动swoole server,就可以调用client中的方法去执行对应的功能。

思考和优化

建议除此server执行外,还有个定时任务server去处理执行失败的任务。

可以参考腾讯的tsf框架,用异步和协程的特性处理部分业务。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23327.html

相关文章

  • Swoole-Task:简单高效的异步任务处理框架

    摘要:地址欢迎提用法示例路由说明对应目录下的文件中的名称也必须是继承对应文件中的的最后必须返回即最后一句等同于启动后发起请求假定监控的和端口是或者投递任务到进行处理目录结构说明具体处理业务逻辑的地方配置文件目录,根据环境来加载配 Swoole-Task github 地址:https://github.com/luxixing/swoole-task欢迎 star 提 issues Swoo...

    lei___ 评论0 收藏0
  • IMI 基于 Swoole 开发的协程 PHP 开发框架 常驻内存、协程异步非阻塞

    摘要:介绍是基于开发的协程开发框架,拥有常驻内存协程异步非阻塞等优点。宇润我在年开发并发布了第一个框架,一直维护使用至今,非常稳定,并且有文档。于是我走上了开发的不归路 showImg(https://segmentfault.com/img/bVbcxQH?w=340&h=160); 介绍 IMI 是基于 Swoole 开发的协程 PHP 开发框架,拥有常驻内存、协程异步非阻塞IO等优点。...

    airborne007 评论0 收藏0
  • swoole——从入门到放弃(三)

    摘要:从入门到放弃三一进程子进程创建成功后要执行的函数重定向子进程的标准输入和输出。默认为阻塞读取。是否创建管道,启用后,此选项将忽略用户参数,强制为。 swoole——从入门到放弃(三) 一、进程 swoole_process SwooleProcess swoole_process::__construct(callable $function, $redirect_stdin...

    王笑朝 评论0 收藏0
  • swoole——从入门到放弃(三)

    摘要:从入门到放弃三一进程子进程创建成功后要执行的函数重定向子进程的标准输入和输出。默认为阻塞读取。是否创建管道,启用后,此选项将忽略用户参数,强制为。 swoole——从入门到放弃(三) 一、进程 swoole_process SwooleProcess swoole_process::__construct(callable $function, $redirect_stdin...

    rottengeek 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<