一文了解swoole多進(jìn)程消息系統(tǒng)

一文了解swoole多進(jìn)程消息系統(tǒng)

場景:適用于大部分消息隊(duì)列場景,我列舉幾個(gè)常見地方:訂單自動(dòng)取消并歸還庫存,自動(dòng)收貨,群發(fā)郵件,推送微信消息模板,異步郵件發(fā)送,會(huì)員到期自動(dòng)取消等等。

一、我們開始看下這個(gè)消息端系統(tǒng)的實(shí)現(xiàn)流程。

然后把業(yè)務(wù)邏輯寫在Job類,分別兩個(gè)方法 [ doJob => 自定義業(yè)務(wù), after=> 業(yè)務(wù)后續(xù)操作]

一文了解swoole多進(jìn)程消息系統(tǒng)

二、Serve-Queue 詳細(xì)講解流程:

1、安裝 git clone https://github.com/twomiao/Serve.git , 然后執(zhí)行命令:Composer install

2、cd Serve/app/ 打開目錄,效果圖:

一文了解swoole多進(jìn)程消息系統(tǒng)

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):

一文了解swoole多進(jìn)程消息系統(tǒng)

投遞模擬數(shù)據(jù), 通過 php test/placeOrder.php 1000

一文了解swoole多進(jìn)程消息系統(tǒng)

swoole 開始多進(jìn)程處理,訂單數(shù)據(jù)

一文了解swoole多進(jìn)程消息系統(tǒng)

php serve reload:平滑重啟Task進(jìn)程,等同更新(new Job())->doJob()方法;

新增加文字提醒 “2333, 平滑重啟成功”; 哈哈,其實(shí)說明已經(jīng)生效啦!

一文了解swoole多進(jìn)程消息系統(tǒng)

一文了解swoole多進(jìn)程消息系統(tǒng)

守護(hù)進(jìn)程運(yùn)行:命令執(zhí)行 php serve start -d

一文了解swoole多進(jìn)程消息系統(tǒng)

一文了解swoole多進(jìn)程消息系統(tǒng)

投遞一筆訂單,我們測試看下呢?-1 待支付狀態(tài) 0 已自動(dòng)取消

一文了解swoole多進(jìn)程消息系統(tǒng)

提醒:測試文件在 Serve/data/sp_order.sql

四、實(shí)現(xiàn)上述過程,需要下面的這些環(huán)境安裝

1、安裝Redis 作為隊(duì)列, MySQL 數(shù)據(jù)庫

2、通過命令 pecl install swoole, pecl install seaslog 完成擴(kuò)展安裝

php –ini 命令確定 php.ini 位置, 把 swoole.so 和 seaslog.so 添加上去即可

3、通過Mix Delayer 工具(實(shí)現(xiàn)延時(shí))

下載地址:https://github.com/mix-basic/delayer/releases

使用說明: https://github.com/mix-basic/delayer-client-php

4、管理Serve 命令,分別有:php serve start | stop | reload | reload:all

5、Git 倉庫地址:

https://github.com/twomiao/Serve.git? (Redis 延時(shí)隊(duì)列)

https://github.com/twomiao/Jober?

PHP中文網(wǎng),大量的免費(fèi)swoole入門教程,歡迎在線學(xué)習(xí)!

以上就是一文了解

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享