小編給大家分享一下swoole多進(jìn)程消息系統(tǒng)的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)建站是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營(yíng)產(chǎn)品:響應(yīng)式網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹(shù)立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營(yíng)、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。場(chǎng)景:適用于大部分消息隊(duì)列場(chǎng)景,我列舉幾個(gè)常見(jiàn)地方:訂單自動(dòng)取消并歸還庫(kù)存,自動(dòng)收貨,群發(fā)郵件,推送微信消息模板,異步郵件發(fā)送,會(huì)員到期自動(dòng)取消等等。
一、我們開(kāi)始看下這個(gè)消息端系統(tǒng)的實(shí)現(xiàn)流程。
然后把業(yè)務(wù)邏輯寫在Job類,分別兩個(gè)方法 [ doJob => 自定義業(yè)務(wù), after=> 業(yè)務(wù)后續(xù)操作]
二、Serve-Queue 詳細(xì)講解流程:
1、安裝 git clone https://github.com/twomiao/Serve.git , 然后執(zhí)行命令:Composer install
2、cd Serve/app/ 打開(kāi)目錄,效果圖:
3、目錄介紹: Config、Services、Utils、Job、Func
(1)Config 配置文件目錄 (Redis,MySQL,Serve-Queue)
(2)Services 業(yè)務(wù)分層 ( OrderService)
(3)Utils 工具類 (郵件,短信等等),Helper 等同
(4)Job 目錄 (Job::doJob() 業(yè)務(wù)編寫在里面,不要更改Job類名稱)
(5)Func 常用函數(shù) ( env, db為例)
(6)log 日志目錄以及TEST目錄(模擬數(shù)據(jù)文件在里面)
三、Serve-Queue 運(yùn)行流程:
php serve start 命令啟動(dòng):
投遞模擬數(shù)據(jù), 通過(guò) php test/placeOrder.php 1000
swoole 開(kāi)始多進(jìn)程處理,訂單數(shù)據(jù)
php serve reload:平滑重啟Task進(jìn)程,等同更新(new Job())->doJob()方法;
新增加文字提醒 “2333, 平滑重啟成功”; 哈哈,其實(shí)說(shuō)明已經(jīng)生效啦!
守護(hù)進(jìn)程運(yùn)行:命令執(zhí)行 php serve start -d
投遞一筆訂單,我們測(cè)試看下呢?-1 待支付狀態(tài) 0 已自動(dòng)取消
提醒:測(cè)試文件在 Serve/data/sp_order.sql
四、實(shí)現(xiàn)上述過(guò)程,需要下面的這些環(huán)境安裝
1、安裝Redis 作為隊(duì)列, MySQL 數(shù)據(jù)庫(kù)
2、通過(guò)命令 pecl install swoole, pecl install seaslog 完成擴(kuò)展安裝
php --ini 命令確定 php.ini 位置, 把 swoole.so 和 seaslog.so 添加上去即可
3、通過(guò)Mix Delayer 工具(實(shí)現(xiàn)延時(shí))
下載地址:https://github.com/mix-basic/delayer/releases
使用說(shuō)明: https://github.com/mix-basic/delayer-client-php
4、管理Serve 命令,分別有:php serve start | stop | reload | reload:all
5、Git 倉(cāng)庫(kù)地址:
https://github.com/twomiao/Serve.git (Redis 延時(shí)隊(duì)列)
https://github.com/twomiao/Jober
看完了這篇文章,相信你對(duì)“swoole多進(jìn)程消息系統(tǒng)的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!