本文记录了swoole的初步学习和简单使用。欢迎讨论和投诉。swoole简介Swoole是一个PHP高级web开发框架。框架不是为了提高网站的性能,而是为了提高网站的开发效率。利用异步协程的特效,提高代码效率。swoole使用我的业务的场景是为对应的活动发放奖励(积分、优惠券、礼包)。希望判断用户的接受条件后,立即提示用户返回,然后用swoole异步分发这些奖励。构建的结构如下:工具、业务、服务器、客户端文件夹。工具下面是与业务无关的工具;业务下是常见的业务类别;servers下面是swooleserver,处理奖励操作,可以参考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";});$服务->开始();functionsendScore($data){//获取$data$arr=json_decode($data,true);//判断数据是否异常//业务奖励代码returntrue;}client下,创建一个client类,连接服务端进行操作,用于业务,不需要关注细节swoole的实现,只需要使用客户端提供的接口即可,示例如下:K_TCP);//连接服务器if(!$client->connect('127.0.0.1',9501,1)){//}//发送数据到服务器if(!$client->send($msg)){//}//关闭连接$client->close();}}然后在业务机上启动swooleserver,可以在client中调用方法执行相应的功能思路和优化建议除了server执行之外,还有一个定时任务server来处理执行失败的任务.可以参考腾讯的tsf框架处理部分业务,具有异步和协程的特点。
