摘要:本文記錄一次對初步的學(xué)習(xí)和簡單的使用。使用異步協(xié)程的特效,提升代碼效率。使用我的業(yè)務(wù)使用場景是對應(yīng)活動發(fā)獎品發(fā)積分,贈劵,禮包,希望在對用戶的領(lǐng)取條件判斷通過后,立刻給用戶返回提示,然后用異步發(fā)這些獎品。
本文記錄一次對swoole初步的學(xué)習(xí)和簡單的使用。
歡迎討論和吐槽。
Swoole是一種PHP高級Web開發(fā)框架,框架不是為了提升網(wǎng)站的性能,是為了提升網(wǎng)站的開發(fā)效率。
使用異步協(xié)程的特效,提升代碼效率。
我的業(yè)務(wù)使用場景是對應(yīng)活動發(fā)獎品(發(fā)積分,贈劵,禮包),希望在對用戶的領(lǐng)取條件判斷通過后,立刻給用戶返回提示,然后用swoole異步發(fā)這些獎品。
搭建的結(jié)構(gòu)如下:tools,business,servers,client文件夾。
tools下是與業(yè)務(wù)無關(guān)的工具類;
business下是業(yè)務(wù)共用類;
servers下是swoole server,處理發(fā)獎操作,可參考一下server:
set(array("task_worker_num" => 4)); $serv->on("receive", function($serv, $fd, $from_id, $data) { //投遞異步任務(wù) $task_id = $serv->task($data); echo "receive"; }); //處理異步任務(wù) $serv->on("task", function ($serv, $task_id, $from_id, $data) { sendScore($data); //返回任務(wù)執(zhí)行的結(jié)果 $serv->finish($data); }); //處理異步任務(wù)的結(jié)果 $serv->on("finish", function ($serv, $task_id, $data) { echo "finish"; }); $serv->start(); function sendScore($data){ //獲取到$data $arr = json_decode($data,true); //判斷數(shù)據(jù)是否異常 //業(yè)務(wù)發(fā)獎代碼 return true; }
client下,建立client class,連接server操作,業(yè)務(wù)使用的時候,不需要關(guān)注swoole的細(xì)節(jié),只需要使用client提供的接口即可,樣例如下:
connect("127.0.0.1", 9501, 1)){ // } //向服務(wù)器發(fā)送數(shù)據(jù) if (!$client->send($msg)){ // } //關(guān)閉連接 $client->close(); } }
然后在業(yè)務(wù)機(jī)器上啟動swoole server,就可以調(diào)用client中的方法去執(zhí)行對應(yīng)的功能。
思考和優(yōu)化建議除此server執(zhí)行外,還有個定時任務(wù)server去處理執(zhí)行失敗的任務(wù)。
可以參考騰訊的tsf框架,用異步和協(xié)程的特性處理部分業(yè)務(wù)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/23327.html
摘要:地址歡迎提用法示例路由說明對應(yīng)目錄下的文件中的名稱也必須是繼承對應(yīng)文件中的的最后必須返回即最后一句等同于啟動后發(fā)起請求假定監(jiān)控的和端口是或者投遞任務(wù)到進(jìn)行處理目錄結(jié)構(gòu)說明具體處理業(yè)務(wù)邏輯的地方配置文件目錄,根據(jù)環(huán)境來加載配 Swoole-Task github 地址:https://github.com/luxixing/swoole-task歡迎 star 提 issues Swoo...
摘要:介紹是基于開發(fā)的協(xié)程開發(fā)框架,擁有常駐內(nèi)存協(xié)程異步非阻塞等優(yōu)點。宇潤我在年開發(fā)并發(fā)布了第一個框架,一直維護(hù)使用至今,非常穩(wěn)定,并且有文檔。于是我走上了開發(fā)的不歸路 showImg(https://segmentfault.com/img/bVbcxQH?w=340&h=160); 介紹 IMI 是基于 Swoole 開發(fā)的協(xié)程 PHP 開發(fā)框架,擁有常駐內(nèi)存、協(xié)程異步非阻塞IO等優(yōu)點。...
摘要:從入門到放棄三一進(jìn)程子進(jìn)程創(chuàng)建成功后要執(zhí)行的函數(shù)重定向子進(jìn)程的標(biāo)準(zhǔn)輸入和輸出。默認(rèn)為阻塞讀取。是否創(chuàng)建管道,啟用后,此選項將忽略用戶參數(shù),強制為。 swoole——從入門到放棄(三) 一、進(jìn)程 swoole_process SwooleProcess swoole_process::__construct(callable $function, $redirect_stdin...
摘要:從入門到放棄三一進(jìn)程子進(jìn)程創(chuàng)建成功后要執(zhí)行的函數(shù)重定向子進(jìn)程的標(biāo)準(zhǔn)輸入和輸出。默認(rèn)為阻塞讀取。是否創(chuàng)建管道,啟用后,此選項將忽略用戶參數(shù),強制為。 swoole——從入門到放棄(三) 一、進(jìn)程 swoole_process SwooleProcess swoole_process::__construct(callable $function, $redirect_stdin...
閱讀 1518·2021-11-18 10:02
閱讀 1657·2021-09-04 16:40
閱讀 3171·2021-09-01 10:48
閱讀 875·2019-08-30 15:55
閱讀 1853·2019-08-30 15:55
閱讀 1365·2019-08-30 13:05
閱讀 3013·2019-08-30 12:52
閱讀 1625·2019-08-30 11:24