摘要:本文記錄一次對初步的學習和簡單的使用。使用異步協程的特效,提升代碼效率。使用我的業務使用場景是對應活動發獎品發積分,贈劵,禮包,希望在對用戶的領取條件判斷通過后,立刻給用戶返回提示,然后用異步發這些獎品。
本文記錄一次對swoole初步的學習和簡單的使用。
歡迎討論和吐槽。
Swoole是一種PHP高級Web開發框架,框架不是為了提升網站的性能,是為了提升網站的開發效率。
使用異步協程的特效,提升代碼效率。
我的業務使用場景是對應活動發獎品(發積分,贈劵,禮包),希望在對用戶的領取條件判斷通過后,立刻給用戶返回提示,然后用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框架,用異步和協程的特性處理部分業務。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/23327.html
摘要:地址歡迎提用法示例路由說明對應目錄下的文件中的名稱也必須是繼承對應文件中的的最后必須返回即最后一句等同于啟動后發起請求假定監控的和端口是或者投遞任務到進行處理目錄結構說明具體處理業務邏輯的地方配置文件目錄,根據環境來加載配 Swoole-Task github 地址:https://github.com/luxixing/swoole-task歡迎 star 提 issues Swoo...
摘要:介紹是基于開發的協程開發框架,擁有常駐內存協程異步非阻塞等優點。宇潤我在年開發并發布了第一個框架,一直維護使用至今,非常穩定,并且有文檔。于是我走上了開發的不歸路 showImg(https://segmentfault.com/img/bVbcxQH?w=340&h=160); 介紹 IMI 是基于 Swoole 開發的協程 PHP 開發框架,擁有常駐內存、協程異步非阻塞IO等優點。...
摘要:從入門到放棄三一進程子進程創建成功后要執行的函數重定向子進程的標準輸入和輸出。默認為阻塞讀取。是否創建管道,啟用后,此選項將忽略用戶參數,強制為。 swoole——從入門到放棄(三) 一、進程 swoole_process SwooleProcess swoole_process::__construct(callable $function, $redirect_stdin...
摘要:從入門到放棄三一進程子進程創建成功后要執行的函數重定向子進程的標準輸入和輸出。默認為阻塞讀取。是否創建管道,啟用后,此選項將忽略用戶參數,強制為。 swoole——從入門到放棄(三) 一、進程 swoole_process SwooleProcess swoole_process::__construct(callable $function, $redirect_stdin...
閱讀 1527·2021-11-18 10:02
閱讀 1671·2021-09-04 16:40
閱讀 3178·2021-09-01 10:48
閱讀 878·2019-08-30 15:55
閱讀 1857·2019-08-30 15:55
閱讀 1377·2019-08-30 13:05
閱讀 3020·2019-08-30 12:52
閱讀 1630·2019-08-30 11:24